Spring笔记——11.“零配置”支持

我们也可以使用Annotation来代替XML配置文件。似乎注解是主流啊!

搜索Bean类

我们可以使用注解来为架构指明各个java类都是什么。@Component标注为一个普通的Spring Bean类。@Controller标注一个控制器组件类。@Service标注一个业务逻辑组件类。@Repository标注一个DAO组件类

有了这些注解,架构已经能够知道那都是些什么java类了。接下来我们还要告诉架构去哪里搜索这些。在xml中增加如下一行,架构就能自动地去扫描com.cm的各个子包下的java类,并把包含的所有java类都当场bean处理。bean的id是各个类的类名首字母小写,其他字母保留。或者也可以@Component("axe")指定bean实例名。

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

此外component-scan也可以有include-filter和exclude-filter来指定Spring Bean类型。type允许我们设定annotation,assignable,regex和aspectj四中过滤器。expression指定过滤器所需要的表达式。

指定Bean的作用域

直接使用@Scope("prototyep")来标定bean的作用域。

使用@Resource配置依赖

@Resource(name="stoneAxe")来配置当前bean的依赖,相当于xml中的ref。这个注解要放在setAxe方法前面以表示stoneAxe是setAxe的一个参数。

如果直接让@Resource修饰成员变量axe,那么连setAxe方法都不需要。当修饰setAxe时,有些时候可以省略name属性,而直接根据setAxe去找有没有axe这个bean。有的话就传入对象。当修饰成员变量时,name默认与该实例变量属性同名

生命周期行为

@PostConstruct和@PreDestroy可以修饰两个方法用来指定bean的生命周期。它们就相当于xml中bean的init-method和destroy-method两个属性。

Spring3.0新特性

@DependsOn可以修饰bean类或者方法,用于指定强制初始化其它bean。如下:

@DependsOn({"steelAxe","abc"})
@Component
public class Chinese implements Person{}

上述注释会要求Spring在初始化Chinese之前先初始化steelAxe和abc这两个bean。

@Lazy可以用于指定该bean的预初始化行为,是不是要架构自动初始化它。用true或者false参数指定。

Spring4.0新特性

@Autowired注解用来指定自动装配,可以修饰set方法,普通方法,实例变量和构造器。修饰set时默认采用byType自动装配,自动搜索容器中与set需要的类型一样的bean并传入。如果找到多个就发生异常。没有找到就什么也不错,也不报错。

当修饰普通方法时,架构会去看能否在容器中为方法的形参找到一个匹配的bean,如果每个形参都能找到就自动执行方法。

修饰实例变量时,会试图将容器中的与实例变量匹配的bean设置为该实例变量的值。如果是一个实例变量数组,那么久找到所有匹配的bean,传入这个数组。

@Qualifier允许通过bean的id精确配置。不常用。不光可以修饰实例变量,还可以修饰形参。

public void setAxe(@Q(“steelAxe”) Axe axe)
时间: 2024-08-24 16:41:25

Spring笔记——11.“零配置”支持的相关文章

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后台的纯Java开发,很少涉及web开发这块,最近换了个纯的互联网公司,需要做Web后台管理系统,之前都是用xml配置的项目,接触了公司Spring4.x的零配置项目,觉得非常有感觉,不仅仅配置简单,而且条理清晰,所以,这里把学习的内容记录下来,一来加深对这块技术的印象,另外准备做个简单的教程,如果给

spring boot01,spring完全注解(零配置)编程方式

前言: spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置.有了它, 你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功 夫,甚至完全不用配置. 一  spring4.x的java注解方式编程 Java注解是Spring4.x推荐的配置方式,可以完全替代xml配置.Spring的Java注解方式是通过 @Configuration和 @Bean这两个注解实现的: 1.@Configuration 作用于类

CentOS 7运维管理笔记(11)----解决配置静态IP还是会出现动态IP地址的问题

网上搜集CentOS7 配置静态IP的方法,基本上都是说在 /etc/sysconfig/network-scripts/ifcfg-eth0文件中做如下配置 TYPE=Ethernet HWADDR=00:xx:xx:xx:xx:xx #only : none , bootp , or dhcp BOOTPROTO= none DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no #禁用IPV6 IPV6INIT=no IP

spring中增加自定义配置支持

spring.schemas 在使用spring时,我们会首先编写spring的配置文件,在配置文件中,我们除了使用基本的命名空间http://www.springframework.org/schema/beans之外,我们还会用到多种其他命名空间,每一种命名空间还有一个对应的xsd文档. 比如springmvc的http://www.springframework.org/schema/mvc对应http://www.springframework.org/schema/mvc/spring

【学习】Spring 的 AOP :基于Annotation 的“零配置”方式

转自:http://www.cnblogs.com/jbelial/archive/2012/07/20/2539123.html AOP(Aspect Orient Programming ) , 面向切面编程 . 1.AOP的基本概念: AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定的切入点(Pointcut),而不与具体某个类耦合.AOP框架具有如下特征: 1.各步骤之间的良好隔离性. 2.源代码无关性. AOP的专业术语: 1.Aspect(切面) : 应用运行过程中的关

Spring AOP基于注解的“零配置”方式

Spring AOP基于注解的“零配置”方式: Spring的beans.xml中 <!-- 指定自动搜索Bean组件.自动搜索切面类 --> <context:component-scan base-package="org.crazyit.app.service,org.crazyit.app.aspect"> <context:include-filter type="annotation" expression="or

spring boot基础之servlet3.0和spring4.x零配置相关文章

Servlet 3 + Spring MVC零配置:去除所有xml Spring4中的WebApplicationInitializer理解 servlet3注解替代web.xml 利用WebApplicationInitializer配置SpringMVC取代web.xml servlet3.0 ServletContainerInitializer初始化器 servlet 3.0笔记之servlet的动态注册 一个基于注解配置的Web项目的启动流程分析 SpringMVC4零配置 servl

Spring 使用介绍(八)—— 零配置

一.概述 所谓零配置,并不是说一点配置都没有了,而是配置很少而已.通过约定来减少需要配置的数量,提高开发效率. 零配置实现主要有以下两种方式: 惯例优先原则:也称为约定大于配置(convention over configuration),即通过约定代码结构或命名规范来减少配置数量,同样不会减少配置文件:即通过约定好默认规范来提高开发效率. 基于注解的规约配置:通过在指定类上指定注解,通过注解约定其含义来减少配置数量,从而提高开发效率:如事务注解@Transaction是不是基于注解的规约,只有

基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现