1.注册bean的注解
* 注解@Component:
* 作用:加在类上,用于把这个类注册bean对象,放到IoC容器里
* bean的名称:
* 如果没有配置bean的名称,默认名称是“类名称首字母小写”
* 给bean起名称:@Component("bean的名称")
*
* 注解@Component的语义化延伸注解:
* 1. @Controller:用于web层的类上,注册bean对象
* 2. @Service:用于service层的类上,注册bean对象
* 3. @Repository:用于dao层的类上,注册bean对象
2.配置bean的常用注解
2.1 配置bean的作用范围:
@Scope
:配置bean的作用范围,相当于bean标签的scope属性。加在bean对象上
@Scope
的常用值有:
singleton
:单例的,容器中只有一个该bean对象
何时创建:容器初始化时
何时销毁:容器关闭时
prototype
:多例的,每次获取该bean时,都会创建一个bean对象
何时创建:获取bean对象时
何时销毁:长时间不使用,垃圾回收
2.2 配置bean生命周期的方法
@PostConstruct
是方法级别的注解,用于指定bean的初始化方法
@PreDestroy
是方法级别的注解,用于指定bean的销毁方法
3.依赖注入的注解
@Autowired
:byType注入。根据依赖项的类型,从IoC容器里查找bean对象并注入进来
如果找到多个:根据依赖项的名称,查找并注入
如果找到1个:直接注入进来
如果找到0个:报错
@Autowired + @Qualifier("bean名称")
:byName注入。把指定名称的bean对象注入进来注意:
@Qualifier
注解不能独立使用,必须要在byType基础上使用
@Resource(name="bean名称")
:byName注入。把指定名称的bean对象注入进来注入简单值:
@Value("张三")
:直接把值注入进去
@Value("${properties里的key}")
:把properties里指定key的值注入进来注意:必须是已经引入了properties文件,否则@Value里的表达式不生效
4.纯注解的AOP
4.1
@Configuration
配置类简介
@Configuration
把一个Java类声明为核心配置类
加上Java类上,这个Java类就成为了Spring的核心配置类,用于代替
applicationContext.xml
是
@Component
的衍生注解,所以:核心配置类也是bean,里边可以注入依赖4.2 @ComponentScan
简介
@ComponentScan
配置组件注解扫描
basePackages
或者value
属性:指定扫描的基本包4.3@PropertySource
@PropertySource
用于加载properties文件
value
属性:指定propertis文件的路径,从类加载路径里加载4.4@Import
@Import
用于导入其它配置类
Spring允许提供多个配置类(模块化配置),在核心配置类里加载其它配置类
相当于
xml
中的<import resource="模块化xml文件路径"/>
标签4.5
@Bean
声明bean1)
@Bean
定义bean
@Bean
注解:方法级别的注解
用于把方法返回值声明成为一个bean,作用相当于
<bean>
标签可以用在任意bean对象的方法中,但是通常用在
@Configuration
标记的核心配置类中
@Bean
注解的属性:
value
属性:bean的id。如果不设置,那么方法名就是bean的id2)
@Bean
的依赖注入
@Bean
注解的方法可以有任意参数,这些参数即是bean所需要的依赖,默认采用byType方式注入可以在方法参数上增加注解
@Qualifier
,用于byName注入