spring注解
-
@Component
- 使用在类上实例化bean,id为类名首字母小写
-
@Controller
- 使用在web层类上实例化bean,id为类名首字母小写
-
@Service
- 使用在Service层类上实例化bean,id为类名首字母小写
-
@Repository
- 使用在Dao层类上实例化bean,id为类名首字母小写
-
@Autowired(通过反射机制给属性赋值,(required))
- 可以用在字段,setter方法,构造器方法上
- 默认情况下按照类型进行匹配,并且默认情况下要求依赖的对象必须存在(required=true),如果允许null值,可以设置required=false
- 根据类型自动注入(spring提供,包org.springframework.beans.factory.annotation.Autowired)
- 说明@Autowired无法人为去干预注入规则的,然后当容器中同一类型的bean存在多个的话,@Autowired该如何去选择呢,这时就需要@Qualifier注解来帮忙了
-
@Qualifier
- 不能单独使用,结合Autowired使用,并指定名称进行依赖注入
-
@Resource(name,type)
- 可以用在字段,setter方法上
- 若没有使用属性,则通过反射机制,默认按照byName方式进行装配,如果没有匹配,则再类型进行装配
- 若只使用了name属性,则使用byName的自动注入策略,从上下文中查找名称id,如果匹配不到则抛出异常
- 若只使用了type属性,则使用byType自动注入策略,从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个都会抛出异常.
- 若两个属性都使用了,则需要找到唯一匹配的bean进行装配,找不到则抛出异常
- 默认根据name注入(j2ee提供,包javax.annotation.Resource)
-
@Value
- 给类注入普通属性
-
@Scope
- 标注bean的作用范围
- singleton单例,prototype多例
- 在单例情况下,在创建容器时,new ClassPathxml…()就会创建对象并保存在ioc容器中
- 在多例情况下,创建容器时并不会创建该对象,会在调用getbean()或者其他方法时(第一次使用该对象时)才创建该类的对象,每一次创建的对象不是同一个
-
@PostConstruct
- 使用在方法上标注该方法是bean的初始化方法
-
@PreDestroy
- 使用在该方法标注该方法是bean的销毁方法
-
@Configuration
- 用于指定当前类类一个Spring配置类,当创建容器时会从该类上加载注解
-
@ComponentScan
- 用于指定Spring在初始化容器时要扫描的包,和在xml中的<context:component-scan base-package=’….’/>一样
-
@Bean
- 使用在方法上,标注该方法的返回值讲保存在ioc容器中,id默认为方法名,和bean标签一样
-
@PropertySource
- 用于加载properties文件中的配置,和xml中的 <context:porperty-placeholder location=”…”/>一样
-
@Import
- 用于导入其他配置类,和xml中的 一样
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情