1. <beans>
<beans>
是spring xml配置的顶层元素.
其拥有的属性有:
属性 | 说明 |
---|---|
profile |
定义profile环境 |
default-lazy-init |
是否延迟加载bean |
default-merge |
是否继承外部的bean定义.默认false
|
default-autowire |
默认的自动装配方式 |
default-autowire-candidates |
定义默认的自动装配的bean名称 |
default-init-method |
默认的初始化方法 |
default-destroy-method |
默认的bean的销毁方法 |
2. <bean/>
<bean/>
用于声明bean.
其属性有:
属性 | 说明 |
---|---|
id |
bean的id |
name |
bean的名称 |
class |
bean的类型 |
init-method |
bean的初始化回调方法 |
destroy-method |
bean的销毁回调方法 |
scope |
bean作用域 |
autowire |
自动装配方式 |
autowire-candidate |
自动装配bean名称 |
factory-bean |
工厂bean名称 |
factory-method |
工厂方法名称 |
abstract |
是否是抽象的bean |
parent |
指定父bean |
primary |
在装配时的首选对象 |
depends-on |
bean依赖(间接依赖) |
lazy-init |
延迟加载 |
3. <bean/>元素的子元素
3.1. <property/>
: 定义bean的属性值.
属性 | 说明 |
---|---|
name |
属性名 |
value |
属性值(定义基本类型) |
ref |
引用一个bean |
3.2. <constructor-arg/>
: 定义bean的构造函数参数值.
属性 | 说明 |
---|---|
name |
构造函数参数名称 |
type |
构造函数参数类型 |
index |
构造函数参数位置(从0开始) |
value |
构造函数参数值 |
ref |
bean(构造函数参数值) |
3.3.<lookup-method/>
: 查找方法
属性 | 说明 |
---|---|
name |
查找方法名称 |
bean |
查找方法返回的bean, 通常是一个prototype类型的bean |
3.4.<replaced-method/>
: 方法替换
属性 | 说明 |
---|---|
name |
被替换的方法名称 |
replacer |
替换方法所在的bean, 这个bean要实现MethodReplacer 接口. |
子元素:
<arg-type/
>: 定义替换方法的参数类型
属性 | 说明 |
---|---|
match |
参数类型 |
3.5.<qualifier/>
元素
相当于@Qualifier
注解.
属性 | 说明 |
---|---|
type |
@Qualifier 类型, 自定义了相应类型时使用, 默认为spring的@Qualifier
|
value |
bean名称 |
子元素:
<attribute/>
: 定义@Qualifer的属性值.
属性 | 说明 |
---|---|
key |
属性名 |
value |
属性值 |
4. <alias/>
给bean定义别名
属性 | 说明 |
---|---|
name |
bean的名称 |
alias |
给bean定义的别名 |
5. <import/>
引入其它的xml文件.
属性 | 说明 |
---|---|
resource |
文件路径 |
6. <context:annotation-config/>
激活spring在bean类中应用的各种注解:
@Required
@Autowired
@PostConstruct
@PreDestroy
@Resource
@WebServiceRef
@EJB
@PersistenceContext
@PersistenceUnit
7. <context:component-scan/>
开启注解扫描,扫描指定路径下带有相关注解的类并自动注册为bean.
@Component
@Controller
@RestController
@Service
@Repository
@ControllerAdvice
@Configuration
- 默认开启了
<context:annotation-config/>
配置.
属性 | 说明 |
---|---|
base-package |
包扫描路径, 可用${} 占位符 |
annotaion-config |
默认为true , 开启<context:annotation-config/> 配置 |
name-generator |
定义的BeanNameGenerator 的全限定类名 |
resource-pattern |
匹配的组件类定义, 默认**/*.class , 建议使用include-filter 和exclude-filter 元素 |
scope-resolver |
用于解析作用域的ScopeMetadataResolver 类型的全限定类名 |
scoped-proxy |
是否生成代理组件 |
use-default-filters |
是否自动发现以上注解所注释的组件, 默认为true
|
子元素:
7.1 <context:exclude-filter/>
对符合条件的组件排除不进行组件扫描.
属性 | 说明 |
---|---|
type |
定义筛选类型 annotation :组件上的注解 assignable : aspectj : regex : custom : |
expression |
对应的表达式 |
7.2 <context:include-filter/>
对符合条件的组件进行组件扫描.
属性定义同上
8. <context:property-override/>
通过配置文件定义覆盖bean的属性值, 在properties文件中通过beanName.property=value
的格式.如果定义的bean不存在会抛出异常.
属性 | 说明 |
---|---|
file-encoding |
解析文件的编码, 默认为none, 使用java.util.Properties 编码 |
ignore-resource-not-found |
默认为false, 当没有找到bean时是否忽略 |
ignore-unresolvable |
忽略文件中无法解析的key |
local-override |
是否不覆盖属性的默认值, 默认为false, 即文件中定义的值会覆盖属性的默认值 |
location |
文件所在路径, 多个用逗号分隔 |
order |
文件优先级顺序 |
properties-ref |
用于定义替换的Properties对象的bean名称 |
9. <context:property-placeholder/>
加载容器中定义的${}
占位符所在的properties
文件或Properties
对象.
具有`<context:property-override/>所有的属性.此外还有以下属性:
属性 | 说明 |
---|---|
value-separator |
占位符变量和关联的默认值之间的分隔符, 默认值为: 符号。 |
网友评论