Spring的标签
- Spring的xml标签大体上分为两类,一种是默认标签,一种是自定义标签
- 默认标签:就是不用额外导入其它命名空间约束的标签,例如<bean>标签
-
标签 作用 <beans>
一般作为xml配置根标签,其他标签都是该标签的子标签 <bean> Bean的配置标签 <import> 外部资源导入标签 <alias> 指定bean的别名标签
-
- 自定义标签:就是需要额外引入其它命名空间约束,并通过前缀引用的标签,例如
<context:property-placeholder/>
- 默认标签:就是不用额外导入其它命名空间约束的标签,例如<bean>标签
-
默认标签
-
<beans>标签的使用
- <beans>标签,除了经常作为跟标签以外,还可以嵌套在跟标签以内,使用profile属性切换开发环境
-
<!-- todo 配置测试环境下,需要加载的bean实例--><beans profile="test"><!--todo 配置开发环境下,需要加载的bean实例--><beans profile="dev">
-
可以使用以下两种方式指定被激活的环境
-
使用命令行动态参数,虚拟机动态参数加载-Dspring.profile.active=test
-
使用代码的方式设置环境变量,System.setProperty(“spring.profiles.active”,“test”)
-
具体代码
-
注意指定环境的代码需要在创建工厂之间指定
-
// 指定环境System.setProperty("spring.profiles.active", "dev");ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");UserServiceImpl userServiceImpl = (UserServiceImpl) context.getBean("userService1");System.out.println(userServiceImpl);
-
配置文件如下:
-
<beans profile="dev"><bean id="userService1" class="com.example.Service.Impl.UserServiceImpl"></bean></beans>
-
-
运行结果如下:
-
-
-
-
<import>标签的使用
- <import>标签,用于导入其它配置标签文件,项目变大后,就会导致一个配置文件内容过多,可以将一个配置文件根据业务模块进行划分,划分后,最终通过<import>标签导入到一个主配置文件中,项目加载主配置文件就连同导入的文件一并加载(当然也可以通过代码进行导入不同配置文件,但是太过于繁琐,使用该标签时,我们只用在创建容器时,只需要加载一个著配置文件即可)
-
<!-- todo 导入另一个配置文件--><import resource="beans.xml"/>
-
导入之后,就可以调用导入配置文件中配置设置的<bean>对象了
-
-
<alias>标签的使用
- <alias>标签是为某个Bean添加别名,与在<bean>标签上使用name属性添加别名的方式一样
-
<bean id="userDAO" class="com.example.DAO.Impl.UserDAOImpl"></bean><alias name="userDAO" alias="xxx"/><alias name="userDAO" alias="yyy"/>
-
测试类代码
-
System.setProperty("spring.profiles.active", "dev");ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");UserDAO userDAO = (UserDAO) context.getBean("xxx");System.out.println(userDAO);
-
-
-
<bean>标签的使用
- 太常见了,不做赘述
-
-
其自定义标签
- Spring的自定义标签需要引入外部的命名空间,并为外部的命名空间指定前缀,使用<前缀:标签>的形式的标签,称之为自定义标签,自定义标签的解析流程也是Spring xml拓展点方式之一,在《Spring 整合其它框架》章节进行详细介绍