你的位置:首页 > ASP.net教程

[ASP.net教程]Javaweb Spring几个基本注释


<div ></div>

 一、@Autowired注解:

     如要仅仅使用此注解,需要在spring容器中声明该注解的解析Bean:
          
          <bean />
 
     该bean会自动扫描spring中所有autowired注解,默认是类型匹配。
     当所自动注入的bean超过1个,或者没有时,都会报BeanCreationException错
     该注解可以用在变量上面,方法,构造方法上面,对方法传入的参数进行注入
 
二、@Qualifier注解:
     该注解制定autowired注入bean的名称,所以它是对变量注释的:
     
     @Autowired   
     public Boss(Car car , @Qualifier("office")Office office){
         //方法体
     };
 
     
     @Autowired   
     @Qualifier("office")   
     private Office office;
 
三、@Resource
     作用和@Autowired 一样,但是它默认是根据类型来注入,也可更改为type,在lib/j2ee/common-annotations.jar包中,在
     
<bean />
 
四、@preConstruct  @preDistory
     这两个注释是在bean实例化和销毁前执行的方法注释,也就是说,注释在方法上面。这两个注释的功能,也可以通过<bean>元素的 init-method/destory-method来配置
 
 
五、<context : annotation-config/>简化配置
     在     spring 2.x 中对context引入了一个新的Schema 命名空间, 该命名空间对注释驱动,属性文件引入,加载期织入等功能提供了便捷的配置,也就是免去了配置每个注释的处理类,默认会注册:AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessorPersistenceAnnotationBeanPostProcessor 以及equiredAnnotationBeanPostProcessor 这 4 个 BeanPostProcessor。
在配置文件中使用 context 命名空间之前,必须在 <beans> 元素中声明 context 命名空间。
 
————————————————————可以把类定义成bean的注解-------------------------------------------------------------
六、@Component
     在spring2.5中提供该注释,可以直接定义bean,它是个泛泛的概念,可以定义在任何层次(dao、service、controller...)上
 
七、@Repository
     只能定义在Dao层,因为该注解不仅仅是将类识别为bean,而且还能将类所抛出的数据访问异常封装成为spring的数据访问异常,使得异常独立于底层框架
 
八、@Service
     标注在业务层上
 
 
九、@Controller
     标注在控制层,@Controller(“name”)  @Controller(value=“name”)意思是告诉spring注册bean的时候,把bean名字设为name
 
 
十、@Scope(“singleton”||”prototype")
     该注释是告诉该类在创建bean的时候,是以单例模式,还是每次都重新创建,默认单例。
     可以避免struts里面线程安全问题
 
使用这几个注解,spring会自动创建相应的bean并注册到applicationContext中,默认都是sigleton模式
 
 

<context : component-scan base-package=“”> 扫描子包中上面四个注释,然后注册成bean,该语句会默认引入AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessor,所以可以不用
<context : annotation-config/>
------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
     1、注释是在Java源码上面,如果需要在某个地方加入bean,那就需要调整Java源码,然后重新编译,而     2、如果bean不是自己写的类,而是Java里面的,那么注释就没法用了。
     3、注释配置往往是类级别的,而 @Transaction 事务注释,使用 aop/tx 命名空间的事务配置更加灵活和简单。

java企业级通用权限安全框架源码 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

【java框架源码下载】