一,注解开发
1、定义bean
@Component("名称")(名称相当于之前配置bean的id)
在要配置的bean的类那里用这个注解
核心配置文件中通过扫描加载bean
<context:component-scan base-package="文件目录"/>
在service可以使用@service,在dao层用@Repository,在Control层用@Controller,他们跟@Component作用一样,只是为了方便阅读。
二,纯注解开发
1、配置类
1)Spring3.0开启了纯注解开发模式,使用Java配置类替代了核心配置文件
2)@Configuration注解用于设定当前类为配置类
3)@ComponentScan({"路径1","路径2"})注解用于设定扫描路径,此注解只能用一次,多个数据要用数组形式
2,加载配置
由加载配置文件初始化容器:
ApplicationContext ctx = new ClassPathXmlApplicationContext( "xml文件" );
变成了加载配置类初始化容器:
ApplicationContext ctx m new AnnotationConfigApplicationContext(配置类.class);
3、注解开发bean的作用范围
@Scope("prototype")/@Scope("singletion")多例/单例默认为单例
4、注解开发bean的生命周期
在初始化和销毁的方法前用@PostConstruct和@PreDestory注解
5、注解开发依赖注入(自动装配)
1)引用类型
在依赖的那个bean(对象)用@Autowired
当出现多个类型相同的bean时,可以用@Qualifier("名称")指定名称(指定的名称在@Component里定义)
2)简单类型
①直接使用@Value("值")
②从properties文件加载“值”的值
加载文件:@PropertySource({"文件名1","文件名2"......})(在配置类中使用),然后@Value("${key}")
3)注意
①自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
②自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法
6、第三方bean管理
1)初始化bean
①在配置类中定义一个方法,返回值类型为bean的类型
在方法上添加@Bean注解,表示返回值是一个bean,这就做到了管理第三方bean
②也可以在专门的一个类中定义方法,然后在配置类中用@Import({方法类1.class,方法类2.class......})
2)为第三方bean注入资源
①简单类型
定义成员变量,直接用@Value("值"),这样也可以用上面加载prpperties文件的方式
②引用类型
只需要为bean定义方法设置形参即可,容器会自动装配