spring基於java配置@Configuration和@Bean用法【程式碼示例】
public class MyDriverManager {
public MyDriverManager(String url,String userName,String password){
System.out.println("url="+url);
System.out.println("username="+userName);
System.out.println("password="+password);
}
}
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") public class StoreConfig { @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean public MyDriverManager myDriverManager(){ return new MyDriverManager(url,username,password); } }
@ImportResource("")是獲得xml檔案,但在xml檔案中又載入了config.properties配置檔案,
所以也就間接的載入了config.properties配置檔案
@Value("${key-name}") 將配置檔案中的值儲存在指定欄位中
這兩個註解加在一起無非就是完成從配置檔案中獲取鍵值對的功能,可以用xml檔案實現
<context:property-placeholder location="classpath:jdbc.properties"/> <bean class="org.Springframework.jdbc.datasource.DriverManagerDataSource"> <property name="url" value="${"jdbc.url"}"/> </bean>
@Bean標識一個用於配置和初始化一個由springIOC容器管理的新物件,其作用類似於xml檔案中的<bean></bean>
添加了此註解 就無須在MyDriverManager類中新增那四個註解中的一個了
(傳說中的四個註解:@Component @Repository @Service @Controller)
若沒有(name=" ")則預設id或稱之為name為方法的名稱
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:/config.properties" /> </beans>
config.properties配置檔案
jdbc.url=127.0.0.1
jdbc.username=root
jdbc.password=root
注意檔案中的username前加jdbc.是很必要的!
單元測試類:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import test.UnitTestBase;
@RunWith(BlockJUnit4ClassRunner.class)
public class TestBean extends UnitTestBase{
public TestBean(){
super("classpath:spring-bean-annotations.xml");
}
@Test
public void test(){
MyDriverManager driver=super.getBean("myDriverManager");
System.out.println(driver.getClass().getName());
}
}
spring-bean-annotations.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="test10"></context:component-scan>
</beans>
整體理一下思路
1.載入的spring-bean-annotations.xml檔案是為了可以在test10包中找到MyDriverManager類
但如果給類加@Component註解會有異常
2.通過“myDriverManager”獲得例項物件,因為在StoreConfig類中
有加了@Bean註解的 得到一個MyDriverManager例項物件的方法
並且其構造器的引數宣告為成員變數,是通過載入config.xml檔案得到的
3.在congif.xml檔案中載入了config.properties資原始檔,獲得其中的鍵值對
相關推薦
spring基於java配置@Configuration和@Bean用法【程式碼示例】
public class MyDriverManager { public MyDriverManager(String url,String userName,String passwo
Spring中基於Java的配置@Configuration和@Bean用法
Spring中為了減少xml中配置,可以宣告一個配置類(例如SpringConfig)來對bean進行配置。 一、首先,需要xml中進行少量的配置來啟動Java配置: <?xml version="1.0" encoding="UTF-8"?> <bea
Java 8 Lsit和Map之間轉化-程式碼示例
1、List<T>轉Map<S,List<T>> Map<String, List<Entity>> demoMap = demoList.stream() .col
Spring基於Java類配置Bean(四):通過@Configuration配置類引用xml配置資訊
總結:在@Configuration配置類中,通過@ImportResource就可以引入xml配置檔案,在配置類中可直接通過@AutoWired引用xml檔案中定義的bean。(1)XML配置檔案<?xml version="1.0" encoding="UTF-8"
Spring使用Hibernate和再加SpringData時配置的差別基於Java配置
.sh for packages bean java配置 gem springmvc nbsp mod 只使用Spring+Hibernate 配置DataSource、LocalSessionFactoryBean、HibernateTransactionManager
[java][spring]取得通過配置檔案和註解注入的bean、取得當前資料庫連線、取得ApplicationContext的方法
[spring]取得通過配置檔案和註解注入的bean、取得當前資料庫連線、取得ApplicationContext的方法 1、思路: 應用程式啟動時使用ApplicationContextAware讓Spring容器傳遞自己生成的ApplicationContext給我們,
Spring Java Configuration之@Configuration和@Bean
Spring Java Configuration是指用配置類來代替spring中的xml配置檔案, 總的來說@Configuration相當於xml中的<beans>標籤,@Bean相當於xml中的<bean>標籤。 @Configuration沒
Spring(八)之基於Java配置
onf 需要 rgs ava poi .com class 解釋 mes 基於 Java 的配置 到目前為止,你已經看到如何使用 XML 配置文件來配置 Spring bean。如果你熟悉使用 XML 配置,那麽我會說,不需要再學習如何進行基於 Java 的配置是,因為你要
Spring依賴注入(基於XML配置檔案和Annotation的方式完成屬性裝配)
依賴注入的方式(手工裝配): 1.使用bean的構造器注入—基於XML方式 2.使用屬性setter方法注入—基於XML方式 3.使用field注入—基於Annotation方式 注入依賴物件可
Spring-基於Java類的配置
概述 JavaConfig是Spring的一個子專案,它旨在通過Java類的方式提供Bean的定義資訊,在Spring4.0的版本,JavaConfig正式成為Spring4.0的核心功能。 使用Java類提供Bean定義資訊 普通的P
基於 java 配置Spring
1 修改 web.xml <!--使用java配置檔案 需要顯式的指定上下文配置類, 在使用xml配置方式的時候Spring預設使用ClassPathXmlApplicationContex
Spring問題集:@value放在Spring基於java的配置檔案中取不到值
在測試Spring的事務的時候需要連線資料庫,但是發現@Value的值一直就是“{${jdbc.url}}”,並沒有從配置檔案中獲取到值, 配置檔案的程式碼如下: @Configuration @ComponentScan(basePackages =
【Spring註解開發】元件註冊-使用@Configuration和@Bean給容器中註冊元件
## 寫在前面 > 在之前的Spring版本中,我們只能通過寫XML配置檔案來定義我們的Bean,XML配置不僅繁瑣,而且很容易出錯,稍有不慎就會導致編寫的應用程式各種報錯,排查半天,發現是XML檔案配置不對!另外,每個專案編寫大量的XML檔案來配置Spring,也大大增加了專案維護的複雜度,往往很多
spring的Java配置入門(Spring Boot學習之一)
配置文件 png bean 日誌 簡單 pom artifact 簡單的 ret spring的Java配置 1、創建maven項目 使用idea創建maven項目,這裏順便提一下,idea真的比eclipse好用,早點熟悉吧。然後就是maven是java項目管理最主流的工
JAVA中this和super用法
出現 子句 package code rgs lean 眼睛 都是 java對象 參考網上資料和自行理解總結java中this和super中各自用法及其差異 <一>. this的用法 構造方法是創建java對象的重要途徑,通過new關鍵字調用構造器
SpringBoot學習(二)-->Spring的Java配置方式
play sin ext ryu 代碼 容器 技術 測試結果 支持 二、Spring的Java配置方式 Java配置是Spring4.x推薦的配置方式,可以完全替代xml配置。 1、@Configuration 和 @Bean Spring的Java配置方式是通過 @
Spring 基於xml配置方式的AOP(8)
復制 calc owin img add ann frame proc message 1、ArithmeticCalculator.java 1 package com.proc; 2 3 public interface ArithmeticCalculator
Springboot中的@Configuration和@Bean
問題的提出:springboot 的properties已經包含了很多預設配置了 我們再用@Configuration 配置的目的是什麼 ? 問題回答:在Spring Boot中,Starter為我們自動啟用了很多Bean,這些Bean的配置資訊通過properties的方式暴露出來以供使用人員
Spring的Java配置方式、讀取配置檔案資訊
Spring的發展 Spring1.x 時代 在Spring1.x時代,都是通過xml檔案配置bean,隨著專案的不斷擴大,需要將xml配置分放到不同的配置檔案中,需要頻繁的在java類和xml配置檔案中切換。 Spring2.
Spring Cloud:配置中心和訊息匯流排(終結版)(09)
我們在springcloud(七):配置中心svn示例和refresh中講到,如果需要客戶端獲取到最新的配置資訊需要執行refresh,我們可以利用webhook的機制每次提交程式碼傳送請求來重新整理客戶端,當客戶端越來越多的時候,需要每個客戶端都執行一遍,這種方案就不太適合了。使用Spring C