沈阳设计网站公司哪家好,网站后台编辑技巧,阿里指数数据分析平台官网,做网站需要每年都交钱吗第四章 IOC操作bean管理#xff08;基于注解方式创建对象#xff0c;注入属性#xff09;#xff0c;完全注解开发
1.IOC操作bean管理#xff08;基于注解方式#xff09; #xff08;1#xff09;什么是注解#xff1a; ①注解是代码特殊标记#xff0c;格式#…第四章 IOC操作bean管理基于注解方式创建对象注入属性完全注解开发
1.IOC操作bean管理基于注解方式 1什么是注解 ①注解是代码特殊标记格式注解名称属性名称属性值属性名称属性值… ②使用注解注解作用在类上面方法上面属性上面 ③使用注解目的简化XML配置。 2spring针对bean管理中创建对象提供注解。 ①Conponent ②Service ③Controller ④Repository 上面的四个注解功能是一样的都可以用来创建bean实例。 2.基于注解方式实现对象创建 第一步引入依赖 第二步开启组件扫描 !--开启组件扫描如果扫描多个包多个包使用逗号隔开--context:component-scan base-packagedao,service/context:component-scan第三步创建类在类上面添加创建对象注解
/**注解里面的value属性值可以写可以省略不写
默认值是类名称首字母小写*/
Component(value userService) //bean id class/
public class UserService {public void add(){System.out.println(service add...);}
}Testpublic void test1(){ApplicationContext contextnew ClassPathXmlApplicationContext(bean1.xml);UserService userService context.getBean(userService, UserService.class);System.out.println(userService);userService.add();}3.开启组件扫描细节配置 !--示例1 不使用默认filter自己配置filterinclude-filter 设置扫描哪些内容目前只扫描带Controller注解的类--context:component-scan base-packagedao,service use-default-filtersfalsecontext:include-filter typeannotation expressionorg.springframework.stereotype.Controller//context:component-scan!--示例2下面配置扫描包所有内容context:exclude-filter设置哪些内容不进行扫描目前除了Controller其他内容都扫描 --context:component-scan base-packagedao,service context:exclude-filter typeannotation expressionorg.springframework.stereotype.Controller//context:component-scan4.基于注解方式实现属性注入
//XML中只有如下配置context:component-scan base-packagedao,service/context:component-scan1AutoWired根据属性类型进行自动装配 第一步把service和dao对象创建在service和dao类添加创建对象注解。 第二步在service注入dao对象在service类添加dao类型属性在属性上面使用注解。
Service(value userService) //bean id class/
public class UserService {//定义dao类型属性不需要添加set方法//添加注入属性注解Autowiredprivate UserDao userDao;public void add(){System.out.println(service add...);userDao.add();}
}
Repository
public class UserDaoImpl implements UserDao {Overridepublic void add() {System.out.println(dao add ...);}
}2Qualifier根据属性名称进行注入 Qualifier注解的使用要和Autowired一起使用。
Repository(value userDaoImpl1)
public class UserDaoImpl implements UserDao {Overridepublic void add() {System.out.println(dao add ...);}
}
Service(value userService) //bean id class/
public class UserService {//定义dao类型属性不需要添加set方法//添加注入属性注解AutowiredQualifier(value userDaoImpl1)//根据名称进行注入private UserDao userDao;public void add(){System.out.println(service add...);userDao.add();}
}3Resource可以根据属性类型注入也可以根据属性名称注入
//是javax.annotation.Resource中的注解// Resource //根据类型注入Resource(name userDaoImpl1) //根据名称注入private UserDao userDao;4Value注入普通类型属性 Value(value abc)private String name;5.完全注解开发 1创建配置类替代XML配置文件。
Configuration //作为配置类替代配置文件
ComponentScan(basePackages {com})
public class SpringConfig {
}2编写测试类 Testpublic void test2(){//加载配置类ApplicationContext contextnew AnnotationConfigApplicationContext(SpringConfig.class);UserService userService context.getBean(userService, UserService.class);System.out.println(userService);userService.add();}