
spring中IOC的常用注解
注解配置与xml配置只是配置形式不一样,都是为了降低程序的耦合。
使用注解时一定要有aopjar包。

且在xml文件中告诉spring在创建容器时要扫描的包;要完成这一步,需要使用context名称空间和约束,在resources下的bean.xml中导入:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

base-package会扫描所有com.itheima包及其子包上的注解。
用于创建对象的
对应于在xml中编写一个bean标签的作用对应。
-
@Component:
- 用于把当前类反射创建的对象存入spring容器。
- 属性:value:用于制定bean的id。当不写valude时,默认id是当前类名且首字母改小写。
-
spring提供的对应三层结构的注解,只与@Component有一点差别,可以使我们三层对象更加清晰。
- Controller:表现层
- Service:业务层
- Repository:持久层
用于注入数据的。
对应于在xml中的bean标签中的property对应。
- Autowored
- 作用:自动按照类型注入。spring容器中如果有唯一的一个bean对象与要注入的变量类型相同(考虑泛型),则直接注入。如果一个都没有就报错。如果有两个类型匹配的。那么就将要注入的变量与容器中匹配的对象的key作比较,以相同的为准。
- 可以出现在变量与方法上
- 注解注入时,无需set方法。
- @Qualifier
- 给类成员变量注入时必须与Autowored同时使用。
- @Resoure:直接按照bean的id注入
- 属性:name:制定bean的id
- @Value
- 用于给基本类型和String注入。
- 属性:value用于制定数据的值,支持spring的el表达式。
用于改变作用范围的
与在bean标签中使用scope属性是一样的
@Scope
作用:制定bean的作用范围
属性 value 范围singleton(单例,默认)prototype(多例)
和生命周期相关的
与在bean标签中使用init-method和destroy-method的作用相同
