在Spring4之后,要使用注解开发,必须要保证aop的包导入了
image.png

1. 使用注解需要导入

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframwork.org/schema/beans"
  6. https://www.springframwork.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. https://www.springframwork.org/schema/context/spring-context.xsd>
  9. <!--指定要扫描的包,这个包下的注解就会生效-->
  10. <context:component-scan base-package="cn.edu.jxust.pojo" />
  11. <context:component-scan base-package="cn.edu.jxust.mapper" />
  12. <context:annotatino-config />
  13. </beans>

2. 属性如何注入

  1. @Component
  2. public class User{
  3. public String name;
  4. //相当于<property name="name" value="jxust">
  5. @value("jxust")
  6. public void setName(String name){
  7. this.name = name;
  8. }
  9. }

3. 衍生的注解

@Component有几个衍生注解,我们在web开发中,会按照MVC三层架构分层!

  • dao 【@Repository】
  • service 【@Service】
  • controller 【@Controller 】

这四个注解功能都一样,都是代表将某个类注册到Spring中,装配到Bean

4. 自动装配置

  1. -@Autowired:自动装配通过类型。名字
  2. 如果Autowired不能唯一自动装配上属性,则需要通过@Quaifier(value="xxx")
  3. -@Nullable 字段标记了这个注解,说明这个字段可以为null
  4. - @Resource :自动装配通过名字,类型。

5. 作用域

  1. @Component
  2. @Scope("prototype")
  3. public class User{
  4. public String name;
  5. //相当于<property name="name" value="jxust" />
  6. @Value("jxust")
  7. public void setName(String name){
  8. this.name = name;
  9. }
  10. }

6. 小结

xml与注解:

  • xml更加万能,适用于任何场合!维护简单方便
  • 注解 不是自己的类使用不了,维护相对复杂!

xml与注解最佳实践:

  • xml用来管理bean;
  • 注解只负责完成属性的注入;
  • 我们在使用的过程中,只需要注意一个问题:必须让注解生效,就需要开启注解的支持
    1. <!--指定要扫描的包,这个包下的注解就会生效-->
    2. <context:component-scan base-package="cn.edu" />
    3. <context:annotation-config />