zoukankan      html  css  js  c++  java
  • Spring常用注解,自动扫描装配Bean

    1 引入context命名空间(在Spring的配置文件中),配置文件如下:

    Xml代码 复制代码 收藏代码
    1. xmlns:context="http://www.springframework.org/schema/context"    
    2. http://www.springframework.org/schema/context
    3. http://www.springframework.org/schema/context/spring-context-2.5.xsd  
    xmlns:context="http://www.springframework.org/schema/context"  
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd 

     

    打开配置 <context:component-scan base-package="包名(扫描本包及子包)"/>

    spring 会自动扫描cn.pic包下面有注解的类,完成Bean的装配。

     

    Xml代码 复制代码 收藏代码
    1. <?xmlversion="1.0"encoding="UTF-8"?>    
    2. <beansxmlns="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.springframework.org/schema/beans    
    6.            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
    7.            http://www.springframework.org/schema/context   
    8.            http://www.springframework.org/schema/context/spring-context-2.5.xsd">    
    9.              
    10.           <context:component-scanbase-package="cn.pic"/>    
    11. </beans>    
    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
           xmlns:context="http://www.springframework.org/schema/context"         
           xsi:schemaLocation="http://www.springframework.org/schema/beans  
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
               http://www.springframework.org/schema/context 
               http://www.springframework.org/schema/context/spring-context-2.5.xsd">  
               
              <context:component-scan base-package="cn.pic"/>  
    </beans>   

    2 在classPath中加入注解用的jar包

    lib\j2ee\common-annotations.jar

     

     

     

    Spring 的context:component-scan扫描支持扫描jar包的方法:

    eclipse自带的jar打包程序,默认打包的时候有个选项<Add directory entries>没有勾选,只要勾选了,就可以了.

     

     

    -----------常用注解--------

     

    --定义Bean的注解

     

    @Controller

    @Controller("Bean的名称")

    定义控制层Bean,如Action

     

    @Service         

    @Service("Bean的名称")

    定义业务层Bean

     

    @Repository  

    @Repository("Bean的名称")

    定义DAO层Bean

     

    @Component 

    定义Bean, 不好归类时使用.

     

    --自动装配Bean (选用一种注解就可以)

    @Autowired  (Srping提供的)

    默认按类型匹配,自动装配(Srping提供的),可以写在成员属性上,或写在setter方法上

     

    @Autowired(required=true) 

    一定要找到匹配的Bean,否则抛异常。 默认值就是true

     

    @Autowired

    @Qualifier("bean的名字")

    按名称装配Bean,与@Autowired组合使用,解决按类型匹配找到多个Bean问题。

     

    @Resource   JSR-250提供的

    默认按名称装配,当找不到名称匹配的bean再按类型装配.

    可以写在成员属性上,或写在setter方法上

    可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是未指定name属性, 默认使用成员属性的变量名,一般不用写name属性.

    @Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再按类型装配了.

     

    @Inject   是JSR-330提供的

    按类型装配,功能比@Autowired少,没有使用的必要。

     

    --定义Bean的作用域和生命过程

    @Scope("prototype")

    值有:singleton,prototype,session,request,session,globalSession

     

    @PostConstruct

    相当于init-method,使用在方法上,当Bean初始化时执行。

     

    @PreDestroy

    相当于destory-method,使用在方法上,当Bean销毁时执行。

     

    --声明式事务

    @Transactional 

     

    http://elf8848.iteye.com/blog/442806

  • 相关阅读:
    46. Permutations 全排列,无重复
    243. Shortest Word Distance 最短的单词index之差
    171. Excel Sheet Column Number Excel列号转数字
    179. Largest Number 用数组中的元素凑一个最大数字
    49. Group Anagrams 多组anagram合并
    电话号码的字母组合(leetcode17)
    最接近的三数之和(leetcode16)
    c#之dynamic类型通过属性获取值(get value by key)
    三数之和(leetcode15)
    java-list与array转换
  • 原文地址:https://www.cnblogs.com/yaowen/p/2994987.html
Copyright © 2011-2022 走看看