SpringBoot學習[email protected]&am
阿新 • • 發佈:2018-11-06
文章目錄
@PropertySource:載入指定的配置檔案
首先我們建立一個配置檔案:
然後用@PropertySource指定它就可以了:
@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix = "person" )
public class Person {
執行測試類:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot01HelloworldQuickApplicationTests {
@Autowired
Person person;
@Test
public void contextLoads() {
System.out.println(person);
}
}
控制檯列印:
@ImportResource:匯入Spring的配置檔案,讓配置檔案裡面的內容生效;
Spring Boot裡面沒有Spring的配置檔案,我們自己編寫的配置檔案,不能自動識別;
先建立一個spring的配置檔案:beans.xml
然後建立一個service:
然後把這個元件加入到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.nyh.springboot.service.HelloService"></bean>
</beans>
想讓Spring的配置檔案生效,載入進來;用@ImportResource標註在一個配置類上
@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
public class SpringBoot01HelloworldQuickApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot01HelloworldQuickApplication.class, args);
}
}
測試類:
@Autowired
org.springframework.context.ApplicationContext ioc;
//測試容器中是否有這個元件
@Test
public void helloService(){
boolean b = ioc.containsBean("helloService");
System.out.println(b);
}
控制檯列印:
然而在開發時這樣做很麻煩,要先寫一個配置檔案,然後再把配置檔案加進來
@Bean
簡便的方式:
SpringBoot推薦給容器中新增元件的方式;推薦使用全註解的方式
配置類@Configuration------>Spring配置檔案,用配置類來代替配置檔案
來寫一個配置類:放在config資料夾下
@Configuration
:告訴SpringBoot當前類是一個配置類,就是替代spring配置檔案的
/*
* @Configuration:告訴SpringBoot當前類是一個配置類,就是替代spring配置檔案的
*
* 在配置檔案中用<bean></bean>新增元件,在配置類中用@Bean
*
* */
@Configuration
public class MyAppConfig {
//@Bean的作用是將方法的返回值新增到容器中,容器中這個元件預設的id就是方法名
@Bean
//
public HelloService helloService(){
System.out.println("@Bean給容器中新增元件了");
return new HelloService();
}
}
然後把我們之前配置在主配置類上的@ImportResource(locations = {"classpath:beans.xml"})
註釋掉,再執行測試類看能不能新增進去