概述
注解的优势主配置简单只需要添加标签,JAVA的反射机制就可以根据标签自动注入自动初始化。
@Autowired
配置方式:属性、setter方法或构造器都可以
不推荐使用,建议使用@Resource ,因为要使这个注解生效还需要在Spring配置文件中配置AutowiredAnnotationBeanPostProcessor
实现成员属性的自动装配,Spring通过BeanPostProcessor类解析@Autowired,需要在Spring配置文件中申明
AutowiredAnnotationBeanPostProcessor类。这样Spring在启动时将扫描所有的Bean进行注入。
@Qualifier
配置方式:跟@Autowired配合使用(配置构造器时,需要配置到入参处)
配置装配方式,默认byType,配置后根据@Qualifier byName装配。
@Resource
配置方式:属性,默认byName配置,当配置为(type=“name”)时,跟@Autowired相同
- 这里是列表文本如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
- 这里是列表文本如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
- 这里是列表文本如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
- 这里是列表文本如果既没有指定name,又没有指定type,则自动按照byName方式进行装配(见2);如果没有匹配,则回退为一个原始类型(UserDao)进行匹配,如果匹配则自动装配;
需要配置文件中配置CommonAnnotationBeanPostProcessor类(CommonAnnotationBeanPostProcessor实现了BeanPostProcessor)
@PostConstruct 和 @PreDestroy
配置方式:方法体
@PostConstruct注释的方法将在类实例化后调用
@PreDestroy注释的方法在类销毁前调用
@Repository
配置方式:类
将类识别为bean,同时还能将所标注的类中抛出的数据访问异常封装为Spring的数据访问异常类型。
@Repository 的基础上增加了功能类似的额外三个注解:@Component、@Service、@Constroller,它们分别用于软件系统的不同层次:
@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
@Service 通常作用在业务层,但是目前该功能与 @Component 相同。
@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。
@scopee
配置方式:类
@Scope("prototype")指定类的作用范围,当从Spring中获取时,每次返回的都是新实例
@RequestMapping
配置方式:类 将url和类绑定。 方法 将url和方法绑定。
@RequestParam
配置方式:参数
一般用于将指定的请求参数付给方法的形参,默认请求参数名称和方法参数名称相同,也可以(“name”)指定请求参数名称
@SessionAttributes
配置方式:类
@SessionAttributes("a","b")将ModelMap中得key为“a”、“b”再放入session中。这样request和session中都有了
@ModelAttribute
配置方式:方法形参
配合@SessionAttribute一起使用时,可以将ModelMap中得属性的值自动赋值给指定的变量