上一篇文章写了自动装载bean, 但是java有三种装载模式, 所以现在通过java代码装载bean
还是demo, 稍微改动下:
package showConfig;
public interface HelloWorldApi {
public void sayHello();
}
package showConfig;
public class PersonHelloWorld implements HelloWorldApi {
@Override
public void sayHello() {
System.out.println("Hello World!");
}
}
package showConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HelloWorldConfig {
@Bean(name="paul.huang") //假如@bean命令, 下列方法模式就不说了,为java编程基础
public HelloWorldApi HelloWorldApi() {
return new PersonHelloWorld();
}
}
@Bean可以指定name名称,上面的代码指定了name="paul.huang",所以下面的代码要获取的方式有几种
package showConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class HelloWorldTest {
public static void main(String[] args) {
// 1. 声明Spring上下文,采用java配置类
ApplicationContext ac = new AnnotationConfigApplicationContext(HelloWorldConfig.class);
//HelloWorldApi hwapi = ac.getBean(HelloWorldApi.class); //可以通过加载接口的方式直接获取,这个和自动装载一样
HelloWorldApi hwapi = (HelloWorldApi)ac.getBean("paul.huang"); //可以通过bean的名字获取
hwapi.sayHello();
}
}
运行结果:
image.png
网友评论