用Annotation方式实例化Bean
因为MyBatis接近尾声, 书上提到了SpringBoot, 原来这个东西这么潮, 不能不学…
现在开始看”JavaEE开发的颠覆者Spring Boot实战”一书, 下面是笔记:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @Configuration public class ProfileConfig { @Bean @Profile("dev") public DemoBean devDemoBean(){ return new DemoBean("from development profile"); } @Bean @Profile("prod") public DemoBean prodDemoBean(){ return new DemoBean("from production profile"); } }
用Annotation(注解)的方式来配置, 是继xml文件之后的一种潮流做法?
首先是@Configuration, 其实意思是不是相当于这是一个配置文件, 类似xml
这个例子是, 如果需要区分生产环境跟开发环境, 可以用这个配置文件/或曰配置Bean, 或曰配置类, 加上@Profile注解, 就能方便的做到.
下面是Main:
public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.getEnvironment().setActiveProfiles("prod"); context.register(ProfileConfig.class); context.refresh(); DemoBean demoBean=context.getBean(DemoBean.class); System.out.println(demoBean.getContent()); context.close(); } }
DemoBean是这样:
public class DemoBean { private String content; public DemoBean(String content) { super(); this.content = content; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }