spring 注解

来源:互联网 发布:变身之网络妖星系统 编辑:程序博客网 时间:2024/06/07 22:57

有关spring的注解,今天了解了下,现在一方面做下学习总结,另一方面给学习的筒子做个借鉴。

 

spring提供相关的几个Annotation来标注bean先列出来

@Component:标注一个普通的spring bean

@Controller:标注一个控制器组件类如action

@Service:标注一个逻辑控制类如Service层

@Repository:标注一个持久层Dao组件类

 

再列几个

@Scope:相信大家对这个不陌生吧,表示bean的作用域,使用方式:Scope("prototype")

@Resource:配合依赖,使用方式:Resource(name="XXXX")等同于xml中的配置<property …… ref="XXXX" />

@Autowired:自动装配,默认按照type装配,如果需要按照name装配就需要和下面的相结合了

@Qualifier

                        针对自动装配下面展示两种写法分别表示属性修饰和set方式修饰:

                        @Autowried

                        @Qualifier("XXXX")

                         private XXXX xxxx;

                        -----------------------------------------------------

                        @Autowried

                        public void setXXX(@Qualifier("xxxx") XXX xxx){}

 

基本常用的注解也就上面的了,现在贴上代码:

要想让注解生效,首先要在配置文件中指明扫描那些包下的Bean类,

 

包结构:

      cn.life.routine

                           -action

                           -dao

                           -service

 

引入ContextSchema,spring配置

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="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="  
  6.        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  7.        http://www.springframework.org/schema/context <a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">http://www.springframework.org/schema/context/spring-context-3.0.xsd</a>"  
  8.     >  
  9.           
  10.     <!-- action暂未用注解 -->  
  11.     <bean id="NoticeAction" class="cn.life.routine.action.NoticeAction" scope="prototype" ></bean>  
  12.       
  13.     <!-- 注解测试,routine -->  
  14.     <context:component-scan base-package="cn.life.routine"></context:component-scan>  
  15. </beans>  


现在依次贴出service,dao

service接口

[java] view plain copy
  1. /** 
  2.  * 注解 
  3.  * @author Francis.Hu 
  4.  * @createDate Oct 21, 2012 
  5.  */  
  6. public interface TestService {  
  7.   
  8.     /** 
  9.      * 注解测试 
  10.      * @return 
  11.      */  
  12.     public String getTestAnnotation();  
  13. }  

service实现类


 

[java] view plain copy
  1. package cn.life.routine.service;  
  2.   
  3. import org.springframework.beans.factory.annotation.Autowired;  
  4. import org.springframework.beans.factory.annotation.Qualifier;  
  5. import org.springframework.stereotype.Service;  
  6.   
  7. import cn.life.routine.dao.TestDao;  
  8.   
  9. /** 
  10.  * 注解测试 
  11.  * @author Francis.Hu 
  12.  * @createDate Oct 21, 2012 
  13.  */  
  14. @Service("testService")  
  15. public class TestServiceImp implements TestService{  
  16.   
  17.     /** 
  18.      * 自动装配 
  19.      */  
  20.     @Autowired  
  21.     @Qualifier("testDao")  
  22.     //@Resource(name="testDao"), 等价于<property ………… ref="testDao" />  
  23.     private TestDao testDao;  
  24.       
  25.     public String getTestAnnotation() {  
  26.         return testDao.getTestDaoAnnotation();  
  27.     }  
  28.   
  29.     public TestDao getTestDao() {  
  30.         return testDao;  
  31.     }  
  32.   
  33.     public void setTestDao(TestDao testDao) {  
  34.         this.testDao = testDao;  
  35.     }  
  36.   
  37. }  


 dao层接口

[java] view plain copy
  1. /** 
  2.  * 测试注解 
  3.  * @author Francis.Hu 
  4.  * @createDate Oct 21, 2012 
  5.  */  
  6. public interface TestDao {  
  7.   
  8.     /** 
  9.      * 得到dao层注解 
  10.      * @return 
  11.      */  
  12.     public String getTestDaoAnnotation();  
  13. }  

dao层实现类       

[java] view plain copy
  1. /** 
  2.  * 测试注解 
  3.  * @author Francis.Hu 
  4.  * @createDate Oct 21, 2012 
  5.  */  
  6. @Repository("testDao")  
  7. public class TestDaoImpl implements TestDao {  
  8.   
  9.     public String getTestDaoAnnotation() {  
  10.         return "This is testDao Annotation";  
  11.     }  
  12.   
  13. }  


下面是action中的调用

[java] view plain copy
  1. /** 
  2.  * 测试注解 
  3.  * @return 
  4.  */  
  5. @Resource(name="testService")  
  6. private TestService testService;  
  7. public String testAnnotation(){  
  8.     String result = testService.getTestAnnotation();  
  9.     System.out.println(result);  
  10.     return SUCCESS;  
  11. }  
  12. public TestService getTestService() {  
  13.     return testService;  
  14. }  
  15.   
  16. public void setTestService(TestService testService) {  
  17.     this.testService = testService;  
  18. }  
  19. /*********************测试结束******************************/  
原创粉丝点击