Spring学习十二----------Bean的配置之@ImportResource和@Value
© 版权声明:本文为博主原创文章,转载请注明出处
@ImportResource
-引入XML配置文件
@Value
-从配置文件中获取值
实例
1.项目结构
2.pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.spring</groupId> <artifactId>Spring-ImportResource</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>Spring-ImportResource Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 统一开发环境 --> <properties> <spring.version>4.3.8.RELEASE</spring.version> </properties> <dependencies> <!-- junit依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- spring核心依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <build> <finalName>Spring-ImportResource</finalName> </build> </project>
3.spring-importresource.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="org.spring.importresource"/> </beans>
4.jdbc.properties
jdbc.url=127.0.0.1 #若使用username,则会获取系统的用户名 jdbc.username=root jdbc.password=123456
5.config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:property-placeholder location="classpath:/jdbc.properties"/> </beans>
6.DriverManage.java
package org.spring.importresource; public class DriverManage { public DriverManage(String url, String username, String password) { System.out.println("url:" + url); System.out.println("username:" + username); System.out.println("password:" + password); } }
7.DriverConfig.java
package org.spring.importresource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource("classpath:config.xml")//引入xml配置文件 public class DriverConfig { @Value("${jdbc.url}")//从配置文件中取值 private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean public DriverManage myDriver() { return new DriverManage(url, username, password); } }
8.TestBase.java
package org.spring.importresource.test; import org.junit.After; import org.junit.Before; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.util.StringUtils; public class TestBase { private ClassPathXmlApplicationContext context; private String springXmlPath; /** * 无参构造器 */ public TestBase() { } /** * 含参构造器,初始化spring配置文件路径 * * @param springXmlPath * spring配置文件路径 */ public TestBase(String springXmlPath) { this.springXmlPath = springXmlPath; } /** * 初始化spring配置文件到IOC容器中 */ @Before public void before() { if(StringUtils.isEmpty(springXmlPath)) { springXmlPath = "classpath:spring-*.xml"; } context = new ClassPathXmlApplicationContext(springXmlPath.split("[,\\s]+")); context.start(); } /** * 销毁IOC容器 */ @After public void after() { if(context != null){ context.destroy(); } } /** * 根据bean ID获取bean对象 * * @param beanId * bean ID * @return */ public Object getBean(String beanId) { return context.getBean(beanId); } }
9.TestSpringImportResource.java
package org.spring.importresource.test; import org.junit.Test; import org.spring.importresource.DriverManage; public class TestSpringImportResource extends TestBase { public TestSpringImportResource() { super("classpath:spring-importresource.xml"); } @Test public void testDriverManager() { DriverManage dm = (DriverManage) super.getBean("myDriver"); System.out.println(dm.getClass().getName()); } }
10.效果预览
© 版权声明:本文为博主原创文章,转载请注明出处