Spring常用注解
-
@Controller:用于标注控制器层组件
-
@Service:用于标注业务层组件
-
@Component : 用于标注这是一个受 Spring 管理的组件,组件引用名称是类名,
第一个字母小写。可以使用@Component(“beanID”) 指定组件的名称 -
@Repository:用于标注数据访问组件,即DAO组件
-
@Bean:方法级别的注解,主要用在@Configuration和@Component注解的类里,
@Bean注解的方法会产生一个Bean对象,该对象由Spring管理并放到IoC容器中。
引用名称是方法名,也可以用@Bean(name = “beanID”)指定组件名 -
@Scope(“prototype”):将组件的范围设置为原型的(即多例)。保证每一个请求有
一个单独的action来处理,避免action的线程问题。由于Spring默认是单例的,只会创建一个action对象,每次访问都是同一个对象,
容易产生并发问题,数据不安全。 -
@Autowired:默认按类型进行自动装配。在容器查找匹配的Bean,当有且仅有一个
匹配的Bean时,Spring将其注入@Autowired标注的变量中。 -
@Resource:默认按名称进行自动装配,当找不到与名称匹配的Bean时会按类型装配。
注解应用说明:
-
@Controller:明确该类是一个控制器类组件;
-
@Service:明确是一个服务类组件;
-
@Repository:明确该类是一个数据访问组件;
-
@Component:不知道他是啥或者不好区分他是啥,但是就是想让他动态装配的就用。
注:@Controller、@Service、@Component、@Repository都是“类”级别的注解,如果一个方法也想动态装配,就用@Bean。
@Autowired和@Resource的使用区别:
当我们想按类型进行自动装配时,就用@Autowired;当我们想按名称(beanID)进行自动装配时,
就用@Resource;