Spring 使用注解的简单梳理

注解是基于Spring的。

所谓的是基于Spring而言的,所以对注解的配置是在spring的配置文件中的,一般放在主配置文件中。

Spring配置中常用的命名空间,一般的Spring配置都能满足需求:

<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"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

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

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

涉及到注解的部分是:

xmlns:context="http://www.springframework.org/schema/context"

之所以会用到这个因为在使用注解功能时有一个自动扫描beans和注解功能注册的配置。

如下:

<context:component-scan base-package="com.rlcc"/>

在加载Spring配置文件时会自动扫描这些包中的bean.

Action Dao  Service 注解配置详细如下:

Action:基本配置:

                    @Controller 

                  public class ExampleAction

如果action需要有范围:

@Controller 

@Scope("prototype")

public class ExampleAction

                  

使用@Controller表示控制层组件

对应范围解释如下:

   默认情况下,从bean工厂所取得的实例为Singletonbeansingleton属性) Singleton: Spring容器只存在一个共享的bean实例,

默认的配置。 Prototype: 每次对bean的请求都会创建一个新的bean实例。二者选择的原则:有状态的bean都使用Prototype作用域

,而对无状态的bean则应该使用singleton作用域。

在 Spring2.0中除了以前的SingletonPrototype外又加入了三个新的web作用域,分别为requestsession和 global session。如

果你希望容器里的某个bean拥有其中某种新的web作用域,除了在bean级上配置相应的scope属性,还必须在容器级做一个额外的初始

化配置。即在web应用的web.xml中增加这么一个ContextListener

org.springframework.web.context.request.RequestContextListener 以上是针对Servlet 2.4以后的版本。

Service基本配置:

         @Service("exampleService")

        public class ExampleServiceImpl    

@Service表示业务层组件

其中括号中的名字是自定义的名字(推荐使用这种方法,不容易乱,默认是getBean

Dao 基本配置:

@Repository

public class SubDAO

这里的@Repository表示的是数据访问组件,Dao层往往会涉及到事务问题这就如下配置(不推荐使用):

@Repository @Transactional 

public class BaseDaoImpl 

         

在实际开发中一般从统一性和规范性考虑,使用AOP对事务进行处理,对@Transactional的用法不再赘述。

好,现在可以用注解标识出各组件了,那么各组件之间的关系又怎样用注解方式来表达呢?

具体如下:

Action中注入业务组件Service

@Resource

private ExampleService exampleService

Service注入数据访问组件Dao:

@Resource

private BaseDao dao;

可以看到只需使用@Resource就可以完成注入。

对于这里的变量名可以任意。

以上为自己对Web开发中的注解的一点简单梳理,都是些最基本的东西,提供给大家参考参考。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值