java# 认识spring# spring常用注解

java# 认识spring# 常用注解

IOC注解

  • @compinent:相当于在xml配置一个bean。把资源让spring来管理。
    • 属性:value 相当于bean的id。默认为类名首字母小写。
  • @controller&@Service@Repository: 三者都是compinent的衍生注解。起作用与属性都是一摸一样,只是为了提供更明确的语义化。
    注意:如果容器中只有一个实例可以给属性赋值,且名称是value,value在赋值时可以不写。

DI注解

@Autowired:

  • 默认按类型装配(byType).
  • 默认情况下对象必须存在。可以设置required为false允许null值。
  • 如果像按名称装配可以结合@Qualifier注解进行使用。

@Qualifier

  • 再自动按照类型注入的基础商,再按照bean的id注入。
  • 再给字段注入时不能独立使用,必须与@Autowire一起使用。
  • 但是给方法参数注入时,可以独立使用。

@Resource

  • 默认按名称装配,可以通过@Resource的name属性指定名称.如果没有指定,默认取字段名称进行查找,当找不到与名称匹配的bean时才按照类型进行装配。
  • @Resource属于J2EE 规范的实现,推荐使用,减少与spring的耦合。
  • 注意:当name属性一但指定,就只会按照名称进行装配。

@Inject

  • 根据类型进行自动装配,如果需按照名称进行装配,则需要配合@Named
  • @Inject是JSR330中的规范,需要导入javax.inject.inject;实现注入
  • @Inject可以作用在变量,setter方法,构造函数。

@value

  • 给基本类型和string类型注入值
  • 可以使用占位符获取属性文件中的值

改变bean作用范围的注解

@Scope:指定bean的作用范围:

  • value:指定范围值,singletion,prototype等。具体意思可查看核心基础篇。

生命周期相关注解

  • @PostConstruct
  • @PreDestroy

配置注解

  • @Configuration:相当于spring的xml配置文件。从spring3.0开始可以使用@configuration替代xml配置文件。配置类内部包含一个或多个被@Bean注解的方法。这些方法将被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描。并用于bean定义对象,初始化spring容易。
    • 属性:value 用于指定配置类的字节码。
  • @Bean: 相当于标签。用来注册bean对象。主要用来配置非自定义bean,比如SqlSessionFactory.
  • @ComponentScan: 组件扫描器,扫描被@component,@serivice注解的类。该注解是编写在类上的。一般配合@configuration注解一起使用。
    • 属性:basePackes:用于指定要扫描的。value与basepackes的作用一样
  • @PropertySource: 用于指定properties文件路径,如在类路径下则写上classpath
    • 属性: value 用于指定properties文件路径,如在类路径下则写上classpath
  • @Import: 相当于spring配置文件中的标签,用来组合多个配置类。达到纯注解方式配置项目
原文地址:https://www.cnblogs.com/xy-c/p/14317636.html