Spring的IOC依赖注入属性,也可以用注解的方式来完成。常见的注解都有Autowired、Resource、Qualifier、Service、Controller、Repository、Component。Autowired和Resource是用来修饰字段,构造函数,或者设置方法;Service,Controller,Repository,Component则是用来修饰类,标记这些类要生成bean。
- Autowired是自动注入,自动从spring的上下文找到合适的bean来注入,按类型注入,byType。
- Resource用来指定名称注入,按名称注入,byName。
- Qualifier和Autowired配合使用,指定bean的名称。
- Service,Controller,Repository分别标记类是Service层类,Controller层类,数据存储层的类,spring扫描注解配置时,会标记这些类要生成bean。
- Component是一种泛指,标记类是组件,spring扫描注解配置时,会标记这些类要生成bean。
意义
|
备注
|
|
---|---|---|
意义
|
备注
|
|
@Compotent("Demo") | 基本组件的bean | Demo为bean的id |
@Resposity("Demo") | 数据存储类标注 | 同上 |
@Service("Demo") | Service类标注 | 同上 |
@Controller("Demo") | Controller控制类标注 | 同上 |
@Autowired(required=false) | 类型自动装配 | required=false表明找不到匹配Bean时不报异常 |
@Qualifier("Demo") | 限定bean名称 | 常与Autowired共用 |
@Resource("Demo") | 指定bean属性 | 未标识属性时根据属性方法获得bean |
@ResponseBody | 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用 | Controller控制类里面使用 |
@Target(ElementType.) | 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述域 3.LOCAL_VARIABLE:用于描述局部变量 4.METHOD:用于描述方法 5.PACKAGE:用于描述包 6.PARAMETER:用于描述参数 7.TYPE:用于描述类、接口(包括注解类型) 或enum声明 | 描述注解可以使用的范围 |
@Retention(RetentionPoicy.) | 1.SOURCE:在源文件中有效(即源文件保留) 2.CLASS:在class文件中有效(即class保留) 3.RUNTIME:在运行时有效(即运行时保留) | 表示注解可以保存的时间,声明周期 |