3 Spring JavaConfig实例

作者: 笑Skr人啊 | 来源:发表于2017-05-04 17:38 被阅读142次

从Spring 3起,JavaConfig功能已经包含在Spring核心模块,它允许开发者将bean定义和在Spring配置XML文件到Java类中。
但是,仍然允许使用经典的XML方式来定义bean和配置,JavaConfig是另一种替代解决方案。

下面是JavaConfig简单例子

  • 1 定义一个简单的Spring Bean
JavaConfig.java 接口
package com.gp6.service;

public interface JavaConfig {
    void testJavaConfig(String msg);
}

JavaConfigImpl.java
package com.gp6.service.impl;

import com.gp6.service.JavaConfig;

public class JavaConfigImpl implements JavaConfig {

    @Override
    public void testJavaConfig(String msg) {
        System.out.println("这里是JavaConfig:::" + msg);
    }

}

  • 2. JavaConfig 注解

使用 @Configuration 注释告诉 Spring,这是核心的 Spring 配置文件,并通过 @Bean 定义 bean。

package com.gp6.help;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.gp6.service.JavaConfig;
import com.gp6.service.impl.JavaConfigImpl;

@Configuration
public class JavaConfigTest {
    
    @Bean(name="javaConfig")
    public JavaConfig helloWorld() {
        return new JavaConfigImpl();
    }
    
}

  • 3 执行结果

使用 AnnotationConfigApplicationContext 加载您的JavaConfig类

package com.gp6.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.gp6.help.JavaConfigTest;
import com.gp6.service.JavaConfig;

public class SpringTest04 {

    public static void main(String[] args) {
        
        ApplicationContext context = new AnnotationConfigApplicationContext(JavaConfigTest.class);
        JavaConfig obj = (JavaConfig) context.getBean("javaConfig");
        obj.testJavaConfig("Spring Java Config");
    }
}


输出结果

这里是JavaConfig:::Spring Java Config

JavaConfig @Import实例

  • 1 Spring Beans

File : JavaConfigImport01.java

package com.gp6.bean;

public class JavaConfigImport01 {
    public void printMsg(String msg) {
        System.out.println("JavaConfigImport01 " + msg);
    }
}

File : JavaConfigImport02.java

package com.gp6.bean;

public class JavaConfigImport02 {
    public void printMsg(String msg) {
        System.out.println("JavaConfigImport02 " + msg);
    }
}
  • 2 @Configuration示例

现在,使用JavaConfig @Configuration声明上述Bean类。

File : JavaConfigImportTest01.java

package com.gp6.help;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.gp6.bean.JavaConfigImport01;
import com.gp6.service.JavaConfig;
import com.gp6.service.impl.JavaConfigImpl;

@Configuration
public class JavaConfigImportTest01 {
    
    @Bean(name="import01")
    public JavaConfigImport01 customerBo(){
        return new JavaConfigImport01();
    }
    
}

File : JavaConfigImportTest02.java

package com.gp6.help;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.gp6.bean.JavaConfigImport01;
import com.gp6.bean.JavaConfigImport02;
import com.gp6.service.JavaConfig;
import com.gp6.service.impl.JavaConfigImpl;

@Configuration
public class JavaConfigImportTest02 {
    
    @Bean(name="import02")
    public JavaConfigImport02 customerBo(){
        return new JavaConfigImport02();
    }
    
}

  • 3 @Import示例

使用@Import加载多个配置文件。

File : JavaConfigImportTestAll.java

package com.gp6.help;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@Import({ JavaConfigImportTest01.class, JavaConfigImportTest02.class })
public class JavaConfigImportTestAll {
    
}

  • 4 执行程序

加载主配置文件,并进行测试。

package com.gp6.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.gp6.bean.JavaConfigImport01;
import com.gp6.bean.JavaConfigImport02;
import com.gp6.help.JavaConfigImportTestAll;

public class SpringTest05 {

    public static void main(String[] args) {
        
        ApplicationContext context = new AnnotationConfigApplicationContext(
                JavaConfigImportTestAll.class);

        JavaConfigImport01 import01= (JavaConfigImport01) context.getBean("import01");
        customer.printMsg("Hello 11");

        JavaConfigImport02 import02= (JavaConfigImport02) context.getBean("import02");
        scheduler.printMsg("Hello 22");
    }
}


输出结果:
JavaConfigImport01 Hello 11
javaConfigImport02 Hello 22

相关文章

网友评论

    本文标题:3 Spring JavaConfig实例

    本文链接:https://www.haomeiwen.com/subject/bhddtxtx.html