SpringBoot学习(三)-----配置Bean
一.配置Bean的方式一
我们可以使用注解@ImportResource引入SpringBean.xml
首先建立一个SpringBoot,添加SpringBootApp.java、beans.xml、HelloService.java、SpringBoottest.java如下:
HelloService.java
package com.zk.service;
public class HelloService {
}
beans.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="HelloService" class="com.zk.service.HelloService"></bean> </beans>
SpringBootApp.java
package com.zk.myspringboot005Controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource(locations={"classpath:beans.xml"})
//@ImportResource:导入spring配置文件让配置文件的内容生效
public class SpringBootApp{
public static void main(String[]args){
SpringApplication.run(SpringBootApp.class, args);
}
}
SpringBoottest.java
package com.zk.myspringboottest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit4.SpringRunner;
import com.zk.myspringboot005Controller.SpringBootApp;
import com.zk.service.HelloService;
@RunWith(SpringRunner.class)
@SpringBootTest(classes={SpringBootApp.class})
@Import(HelloService.class)
public class SpringBoottest {
@Autowired
private ConfigurableApplicationContext ioc;
HelloService helloservice;
@Test
public void testHelloService(){
System.out.println(ioc.containsBean("HelloService"));
}
}
运行SpringBoottest.class,运行结果如下:

这里需要注意,使用@ImportResource引入bean.xml
//@ImportResource:导入spring配置文件让配置文件的内容生效
@ImportResource(locations={"classpath:beans.xml"})
二.配置Bean的方式二
SpringBootApp.java
package com.zk.myspringboot005Controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
public class SpringBootApp{
public static void main(String[]args){
SpringApplication.run(SpringBootApp.class, args);
}
}
ConfigBean.java
package com.zk.myspringboot005Controller;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.zk.service.HelloService;
/*
* 指明当前类是配置类,用当前类代替Spring
* 在配置文件中使用Bean标签增加组件。
* */
@Configuration
public class ConfigBean {
@Bean
public HelloService HelloService(){
return new HelloService();
}
}
HelloService.java
package com.zk.service;
public class HelloService {
public static void sayHello(){
System.out.println("Hello,Service");
}
}
SpringBoottest.java
package com.zk.myspringboottest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;
import com.zk.myspringboot005Controller.SpringBootApp;
import com.zk.service.HelloService;
@RunWith(SpringRunner.class)
@SpringBootTest(classes={SpringBootApp.class})
public class SpringBoottest {
@Autowired
private ConfigurableApplicationContext ioc;
HelloService helloservice;
@Autowired
private ApplicationContext ac;
@Test
public void testHelloService(){
System.out.println(ioc.containsBean("HelloService"));
helloservice.sayHello();
boolean flag=ac.containsBean("HelloService");
System.out.println(flag);
}
}
运行结果如下:

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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zk.myspringboot_003</groupId>
<artifactId>myspringBoot_003</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<finalName>myspringboot_003</finalName>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- 继承父包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
</parent>
</project>

浙公网安备 33010602011771号