首页 > 编程 > Java > 正文

6、使用javaConfig代替xml文件来声明和导入bean

2019-11-08 02:53:03
字体:
来源:转载
供稿:网友

6、使用javaConfig代替xml文件来声明和导入bean

在这之前的教程中,都是使用xml文件(即bean配置文件)来对bean进行声明的,但是在sPRing 3.0版本以及后续更新的版本中,提供了javaConfig的方式(即注解)来声明bean。 例如:

@Configurationpublic class AppConfig { @Bean(name="helloBean") public HelloWorld helloWorld() { return new HelloWorldImpl(); }}

等效于下面的xml方式:

<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-3.0.xsd"> <bean id="helloBean" class="com.yiibai.hello.impl.HelloWorldImpl"></beans>

例子1:使用@Configuration@Bean(name=”name”)来声明bean

第一步:创建bean HelloWorld.java

package com.main.autowrite.javaconfig;public class HelloWorld { public void sayHello(){ System.out.println("hello spring"); }}

HelloWorldConfig.java

package com.main.autowrite.javaconfig;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class HelloWorldConfig { @Bean(name="hello") public HelloWorld getHelloWorld(){ return new HelloWorld(); }}

运行代码以及结果

注意:这次是使用AnnotationConfigapplicationContext 类获取spring容器

@Test public void test(){ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(HelloWorldConfig.class); HelloWorld helloWorld = (HelloWorld)context.getBean("hello"); helloWorld.sayHello(); }

结果如下:

这里写图片描述


例子2:使用@import导入多个bean

目录结构如下: 这里写图片描述

在例子1的基础上,增加以下三个类

Output.java

package com.main.autowrite.javaconfig;public class Output { public void outPut(){ System.out.println("This is a out put demo"); }}

OutputConfig.java

package com.main.autowrite.javaconfig;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class OutputConfig { @Bean(name="output") public Output getOutput(){ return new Output(); }}

AppConfig .java

package com.main.autowrite.javaconfig;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Import;@Configuration@Import({ HelloWorldConfig.class, OutputConfig.class })public class AppConfig {}

测试方法和结果:

@Test public void test(){ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); HelloWorld helloWorld = (HelloWorld)context.getBean("hello"); helloWorld.sayHello(); Output output = (Output)context.getBean("output"); output.outPut(); }

结果:

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表