日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java spring config_Spring重温(二)--Spring JavaConfig

發(fā)布時(shí)間:2025/3/19 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java spring config_Spring重温(二)--Spring JavaConfig 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.從Spring?3起,JavaConfig功能已經(jīng)包含在Spring核心模塊,它允許開發(fā)者將bean定義和在Spring配置XML文件到Java類中。但是,仍然允許使用經(jīng)典的XML方式來定義bean和配置,JavaConfig是另一種替代解決方案。所以,在Spring3以后的版本中,支持xml方式和javaConfig兩種Spring配置方式。

我們通過XML方式定義:

等效于:

packagecom.yiibai.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importcom.yiibai.hello.HelloWorld;importcom.yiibai.hello.impl.HelloWorldImpl;

@Configurationpublic classAppConfig {

@Bean(name="helloBean")publicHelloWorld helloWorld() {return newHelloWorldImpl();

}

}

2.小例子:

a.一個(gè)簡單的bean

packagecom.spring;public interfaceHelloeorld {voidprintHelloWorld(String msg);

}

packagecom.spring;public class HelloworldImpl implementsHelloeorld{

@Overridepublic voidprintHelloWorld(String msg) {

System.out.println("Hello : " +msg);

}

}

b.javaConfig注解:使用 @Configuration 注釋告訴 Spring,這是核心的 Spring 配置文件,并通過 @Bean 定義 bean

packagecom.spring;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;/*使用 @Configuration 注釋告訴 Spring,這是核心的 Spring 配置文件,

并通過 @Bean 定義 bean*/@Configurationpublic classTestConfig {

@Bean(name="helloeorld")publicHelloeorld getHello(){return newHelloworldImpl();

}

}

c.測試main方法:

packagecom.spring;importorg.springframework.context.ApplicationContext;importorg.springframework.context.annotation.AnnotationConfigApplicationContext;public classTestMain {public static voidmain(String[] args) {

ApplicationContext context= new AnnotationConfigApplicationContext(TestConfig.class);

Helloeorld obj= (Helloeorld) context.getBean("helloeorld");

obj.printHelloWorld("Spring Java Config");

}

}

3.@Import

在我們運(yùn)用傳統(tǒng)xml方式進(jìn)行配置Spring時(shí),可以通過如下方式加載多個(gè)配置文件:

在一個(gè)大的項(xiàng)目結(jié)構(gòu),Spring bean配置文件位于不同的文件夾以便于維護(hù)和模塊化。例如,Spring-Common.xml在common 文件夾中,Spring-Connection.xml 在connection文件夾,Spring-ModuleA.xml在ModuleA 文件夾等等。

你可以加載多個(gè)Spring bean的配置文件如下代碼中:

ApplicationContext context= new ClassPathXmlApplicationContext(new String[] {"Spring-Common.xml","Spring-Connection.xml","Spring-ModuleA.xml"});

把所有的 Spring XML 文件放入在項(xiàng)目類路徑中。

project-classpath/Spring-Common.xml

project-classpath/Spring-Connection.xml

project-classpath/Spring-ModuleA.xml

解決方法

以上方法是缺乏組織并且很容易出錯(cuò),更好的辦法應(yīng)組織所有的Spring bean 配置文件到一個(gè)XML文件。例如,創(chuàng)建一個(gè)Spring-All-Module.xml文件,并導(dǎo)入整個(gè)Spring bean的文件如下:

File : Spring-All-Module.xml

現(xiàn)在,可以加載一個(gè)這樣的 XML 文件:

ApplicationContext context= new ClassPathXmlApplicationContext(Spring-All-Module.xml);

將這個(gè)文件放入項(xiàng)目的類路徑。

project-classpath/Spring-All-Module.xml

以上方式等效于javaConfig的如下方式:

1.兩個(gè)簡單的Spring bean。

File One : CustomerBo.javapackagecom.yiibai.core;public classCustomerBo {public voidprintMsg(String msg) {

System.out.println("CustomerBo : " +msg);

}

}

File Two: SchedulerBo.javapackagecom.yiibai.core;public classSchedulerBo {public voidprintMsg(String msg) {

System.out.println("SchedulerBo : " +msg);

}

}2. @Configuration示例

現(xiàn)在,使用JavaConfig @Configuration聲明上述Bean類。

File One: CustomerConfig.javapackagecom.yiibai.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importcom.yiibai.core.CustomerBo;

@Configurationpublic classCustomerConfig {

@Bean(name="customer")publicCustomerBo customerBo(){return newCustomerBo();

}

}

File Two: SchedulerConfig.javapackagecom.yiibai.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importcom.yiibai.core.SchedulerBo;

@Configurationpublic classSchedulerConfig {

@Bean(name="scheduler")publicSchedulerBo suchedulerBo(){return newSchedulerBo();

}

}3. @Import示例

使用@Import加載多個(gè)配置文件。

File : AppConfig.javapackagecom.yiibai.config;importorg.springframework.context.annotation.Configuration;importorg.springframework.context.annotation.Import;

@Configuration

@Import({ CustomerConfig.class, SchedulerConfig.class})public classAppConfig {

}4. 執(zhí)行程序

加載主配置文件,并進(jìn)行測試。packagecom.yiibai.core;importorg.springframework.context.ApplicationContext;importorg.springframework.context.annotation.AnnotationConfigApplicationContext;importcom.yiibai.config.AppConfig;public classApp {public static voidmain(String[] args) {

ApplicationContext context= newAnnotationConfigApplicationContext(

AppConfig.class);

CustomerBo customer= (CustomerBo) context.getBean("customer");

customer.printMsg("Hello 11");

SchedulerBo scheduler= (SchedulerBo) context.getBean("scheduler");

scheduler.printMsg("Hello 22");

}

}

輸出結(jié)果

CustomerBo : Hello11SchedulerBo : Hello22

總結(jié):Spring有xml和javaConfig兩種配置方式,他們方式不同,但效果相同,可以根據(jù)自己的需要進(jìn)行選擇性配置。

總結(jié)

以上是生活随笔為你收集整理的java spring config_Spring重温(二)--Spring JavaConfig的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。