Spring框架 常用的 注解解释

Spring框架 常用的 注解解释
1、@Service业务逻辑层。用于标注业务层组件
·用于标注业务层组件,表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,例如Chinese实例化为chinese,如果需要自己改名字则:@Service(“你自己改的bean名”)。

2、@Controller控制层。用于标注控制层组件(如struts中的action)
·@Controller用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。
·@Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器。
·@Controller标记在一个类上还不能真正意义上说它就是SpringMVC的控制器,应为这个时候Spring还不认识它,这个时候需要把这个控制器交给Spring来管理。

3、@Repository持久层。用于标注数据访问组件,即DAO组件.
·@Repository(value=“userDao”)注解告诉Spring ,让Spring创建一个名字叫做"userDao"的UserDapImpl实例。
·当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name=“userDao”)注解告诉Spring,Spring把创建好的userDao注入给Service即可。

4、@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
·把普通pojo实例化到spring容器中,相当于配置文件中的

5、@AutoWired与**@Qualifier** 常常在一起配合使用
·@AutoWired自动装配默认是按类型匹配的,当且仅有一个匹配Bean时,spring将其注入到@AutoWired标注的变量中
·如果一个容器有一个以上的匹配的bean,则可以通过@Qualifier注解准确找指定的Bean

6、@Resource
·如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
·如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
·如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
·如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

7、@Configuration

  1. @Configuration不可以是final类型;
  2. @Configuration不可以是匿名类;
  3. 嵌套的configuration必须是静态类。
    ·@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
    ·@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的,作用为:配置spring容器(应用上下文)
    ·@Configuration启动容器+@Bean注册Bean,@Bean下管理bean的生命周期
    ·@Bean标注在方法上(返回某个实例的方法),等价于spring的xml配置文件中的,作用为:注册bean对象

8、@Scope
直接在bean对象方法上增加@Scope注解就可以
@Scope注解是springIoc容器中的一个作用域,在 Spring IoC 容器中具有以下几种作用域:基本作用域singleton(单例)、prototype(多例),Web 作用域(reqeust、session、globalsession),自定义作用域
· singleton单例模式 – 全局有且仅有一个实例 默认
· prototype原型模式 – 每次获取Bean的时候会有一个新的实例
· request – request表示该针对每一次HTTP请求都会产生一个新的 bean,同时该bean仅在当前HTTP request内有效
· session – session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效
· globalsession – global session作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义

9、@ComponentScans
@ComponentScans可以一次声明多个@ComponentScan
@ComponentScans({@ComponentScan(“cn.htu”),@ComponentScan(“cn”)}) //扫描多个包
与ComponentScan注解相对应的XML配置就是context:component-scan/, 根据指定的配置自动扫描package,将符合条件的组件加入到IOC容器中
@ComponentScan(“cn.htu”)//扫描一个包
value:指定要扫描的package;

10、@PropertySource
@PropertySource注解用于导入外部配置文件,以使用导入的属性
@PropertySource注解用于指定资源文件读取的位置,它不仅能读取properties文件,也能读取xml文件
@Value将外部配置文件的值动态注入到Bean中
@Value注解用于为属性赋值,可以赋值为常量,或者使用SpEL表达式,也可以使用${}去上面配置类中导入的配置文件中的属性

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值