整理spring零配置(Annotation)

 

spring零配置(Annotation)学习笔记

 

 

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

 

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

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

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

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

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

 

再列几个

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

@Resource:配合依赖,使用方式:Resourcename="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 plaincopy

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>  


现在依次贴出servicedao

service接口

[java] view plaincopy

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 plaincopy

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 plaincopy

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 plaincopy

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 plaincopy

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. /*********************测试结束******************************/  

开发中没有绝对的xml配置或者绝对的零配置 ,只有合理的相互结合才能保证项目的可读性,高效性,个人语言组织能力有限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值