Spring各种注解总结

主要参考的资料:http://blog.csdn.net/ye1992/article/details/19972041

http://blog.csdn.net/ye1992/article/details/19971467


以下都需要在 XML 配置文件中启用Bean 的自动扫描功能,这可以通过<context:component-scan/>实现。这样, 我们就不再需要在 XML 中显式使用 <bean/> 进行Bean 的配置。Spring 在容器初始化时将自动扫描 base-package 指定的包及其子包下的所有 class文件,所有标注了 的类都将被注册为 Spring Bean。

@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。@Repository 只能标注在 DAO 类原因:Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。

Spring2.5之后增加了三个@Component、@Service、@Constroller。

@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。例子@Component("boss")。

@Service 通常作用在业务层,但是目前该功能与 @Component 相同。

@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。

@Autowired对成员变量使用,可以将它们的 setter 方法从类中删除。@Autowired 可以对成员变量、方法以及构造函数进行注释。自动注入的策略是根据变量的类型,也就是byType 。此时Spring 容器中匹配的候选 Bean 数目必须有且仅有一个,否则Spring 容器将抛BeanCreationException 异常。在开发期或测试期(如为了快速启动 Spring 容器,仅引入一些模块的 Spring 配置文件),可以用@Autowired(required = false) ,在找不到匹配 Bean 时也不报错。和找不到一个类型匹配 Bean 相反的一个错误是:如果 Spring 容器中拥有多个候选 Bean,Spring 容器在启动时也会抛出 BeanCreationException 异常。通过在XML中配置AutowiredAnnotationBeanPostProcessor ,它将扫描 Spring 容器中所有 Bean,当发现 Bean 中拥有@Autowired 注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。

@Qualifier("office") 中的 office 是 Bean 的名称,所以 @Autowired@Qualifier 结合使用时,转变成 byName 了。 ,而@Qualifier 的标注对象是成员变量、方法入参、构造函数入参。

@RequestParam注解可以用来提取名为“number”的String类型的参数,并将之作为输入参数传入。 例如public void show(@RequestParam("number") String number, Map<String, Object> model) { }。属性required=false或者true可以用来要求@RequestParam配置的前端参数是否一定要传给后台 。

@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

value:     指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);

method:  指定请求的method类型, GET、POST、PUT、DELETE等。

@Scope,能够配合这四个注解在标注 Bean 的同时能够指定 Bean 的作用域。与通过 XML 配置的 Spring Bean 一样,通过上述注解标识的Bean,其默认作用域是"singleton"。使用该注解时只需提供作用域的名称就可以了。例如:

	@Scope("prototype") 
	@Repository 
	public class Demo { … } 
	当一个 Bean 被自动检测到时,会根据那个扫描器的 BeanNameGenerator 策略生成它的Bean名称。默认情况下,对于使用了 name 属性的 注解,会把 name 值作为 Bean 的名字。如果这个注解不使用 name属性或是其他被自定义过滤器发现的组件,默认 Bean 名称会是小写开头的非限定类名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring框架中的@Service注解是用来声明一个类为服务层(Service)组件的注解。它的作用是将带有该注解的类标识为Spring容器中的一个Bean,同时也能够让Spring容器对该类进行特定的处理。 @Service注解通常用于注解在业务逻辑层的类上,它表明该类是一个服务层的组件,负责处理业务逻辑。在Spring容器中,通过该注解标注的类会被自动扫描并创建对应的Bean实例,然后可以通过依赖注入(DI)的方式将这些实例注入到其他需要使用这些服务的类中。 @Service注解的使用方便简单,在实际开发中可以很轻松地定义和使用服务层的组件。它可以与其他的注解一起使用,例如@Repository注解用于标注Dao层组件,@Autowired注解用于实现依赖注入等。通过这些注解的组合使用,可以实现各个层次之间的解耦,提高代码的可维护性和可读性。 Spring的@Service注解不仅仅是一个标记注解,它还提供了额外的功能。例如,可以使用@Service注解对服务层的组件进行事务管理,可以在注解中指定事务的传播属性、隔离级别等。此外,还可以通过配置属性对注解进行更精细的控制,例如指定Bean的名称、是否对Bean进行延迟加载等。 总结来说,@Service注解Spring框架中用来标识服务层组件的注解。通过对该注解的使用,可以使得服务层的组件更加易于定义和维护。同时,该注解还提供了更多的功能,例如事务管理、配置属性等,可以帮助开发人员更好地控制和管理服务层的组件。 ### 回答2: Spring中的Service注解是用来标识一个类为服务层组件的注解。Service层是位于控制层和持久层之间的一层,主要负责业务逻辑的处理和调度。通过@Service注解,我们可以将一个普通的Java类标识为Service层组件,使其成为Spring容器中的一个Bean对象。 @Service注解与@Component注解类似,都是用来标识一个类为Spring容器管理的组件,只不过@Service注解对应的是服务层组件而已。Service层主要用于处理具体的业务逻辑,例如数据的处理、事务的管理等等。通过@Service注解,我们可以将业务逻辑的相关类实例化并注入到需要调用的地方,实现业务的分层和代码的复用。 在使用@Service注解时,我们可以通过其value属性指定该组件的名称,默认情况下使用类名的首字母小写作为Bean对象的名称。如果在注解中指定了名称,那么Spring容器就会根据该名称创建并管理该Bean对象。另外,我们还可以通过@Service注解来控制该组件的生命周期,可以设置成为单例模式或者多例模式。 总结来说,@Service注解是用来标识一个类为Service层组件的,在Spring容器中,通过该注解将Service层的类实例化并进行管理,以达到业务逻辑处理和调度的目的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值