spring学习(三)配置bean的一些扩展知识

一.通过工厂方法和FactoryBean来配置Bean(之前一直用的是通过全类名——反射机制来配置Bean)

1.通过工厂方法类配置Bean

a静态工厂方法

配置信息:

代码:

 

b实例工厂方法

配置信息:

代码:

 

二.通过FactoryBean配置bean

配置示例:

代码示例:

 

三.通过注解配置Bean

通过注解配置Bean分为两步,首先是在要配置为Bean的类上添加注解,注解的类型有四种

@Component:基本注解,标识了一个受spring管理的组件

@Respository:标识持久层组件

@Service:标识服务层组件

@Controller:标识表现层组件

组件的名称由spring规定,默认为类名首字母小写(如UserService组件的名称为userService,若是接口的实现类,可以通过value="组件名"指定组件名称)

随后需要在spring的配置文件中,引用<context:component-scan>标签和base-package属性指定要扫描为Bean的组件。

base-package:其指定的包及其子包下的类(添加了注解)都会被扫描为Bean

resource-pattern:可以指定要扫描哪些类

还有两个子标签<context:include-filter>和<context:exclude-filter>前者用来指定要包含的类,后者用来指定要排除的类。指定方式都有两种(通过type和expression两个属性)

type属性:有两个取值annotation(通过注解)和assignanle(通过类名)

expression属性:根据type的取值,选择是注解还是类名

配置示范:

通过注解配置Bean(二)——前面讲的是如何通过注解和spring的xml文件将类配置到IOC容器中。本节讲的是如何给这些Bean配置属性。通过以下三个注解实现自动装配

@AutoWired(三个注解功能类似,重点讲解@AutoWired)

@Resource

@Inject

 

@AutoWired注解可以用在属性上,构造方法上,setter方法上,用于将属性装配到Bean中它是按类型装配。如果要装配的类型的Bean已存在,则装配成功,否则装配失败。此时可以用属性(required=false)来拯救就算要装配的类型Bean不存在,也能装配成功的败局。若装配的类型有多个Bean必须指明要装配的是哪一个Bean,否则将导致错误。指明方式有两种,一是在Bean自己生成时就按和类名的关系来取名(Bean名首字母小写),此时默认装配的就是该Bean,二是在自动装配时用注解qualitifeld指定要装配的是哪个实现类,以排除误解。

代码示范如下:

四 spring4.0新特性,泛型依赖注入

父类之间有引用关系,继承了该父类的子类之间也有此引用关系。

 

posted on 2017-10-07 22:31  铁牛xx  阅读(209)  评论(0)    收藏  举报

导航