(D)springboot使⽤注解类代替xml配置实例化bean
bean经常需要被实例化,最常见的就是new⼀个呗,Bean bean = new Bean(),⽅便好⽤还快捷。
然⽽在我们刚开始学习写i项⽬的时候却发现,new不好⽤哦,并且也不报错,根本不知道怎么原因
⽐如
ample;
import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import t.ApplicationContext;
import t.annotation.AnnotationConfigApplicationContext;
ample.bean.Book;
st.TestConfiguration;
@SpringBootApplication
public class Application{
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
//修改Banner的模式为OFF,启动时控制台将不打印显⽰字符wow
builder.bannerMode(Banner.Mode.OFF).run(args);
Book bookconfig = new Book();
System.out.println( " The BookName is "
+Name()
spring怎么读取xml文件+";and Book Author is "
+Author()
+";and Book price is "
+Price());
//SpringApplication.run(Application.class, args);//默认启动⽅式
}
}
控制台打印的却是
打印出来是null,可见实例化了⼀个bookconfig,却并没有从属性⽂件中读到属性值。
按照spring boot简化配置的思路以及spring的尿性,启动注解⼤法吧!
⾸先在Book类上@Scope("singleton"),表明这是⼀个单例类,容器中只有⼀个该类的实例,然后准备⼀个配置类
st;
import t.annotation.ComponentScan;
import t.annotation.Configuration;
//配置类,⽤来取代l那⼀堆<beans></beans>头⽂件
@Configuration
@ComponentScan(value="ample")
public class TestConfiguration {
public TestConfiguration() {
System.out.println("Configuration容器启动初始化。。。");
}
}
这个配置类的作⽤注释中也都写了,就是我们常见的l⾥⾯的那⼀堆头⽂件 <beans></beans>节点间的内容。
嗯,意思就是写了这个清爽的配置类就不⽤在l⾥⾯配置各种bean了。@Configuration @ComponentScan(value="ample")这两个注解的作⽤就要⾃⼰看了。推荐
然⽽真的不需要l了吗?naive!少不了的不要想了。
怎么使⽤这个配置类呢?
ample;
import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import t.ApplicationContext;
import t.annotation.AnnotationConfigApplicationContext;
ample.bean.Book;
st.TestConfiguration;
@SpringBootApplication
public class Application{
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
//修改Banner的模式为OFF,启动时控制台将不打印显⽰字符wow
builder.bannerMode(Banner.Mode.OFF).run(args);
@SuppressWarnings("resource")
ApplicationContext context = new AnnotationConfigApplicationContext(TestConfiguration.class);
Book bookconfig = Bean(Book.class);
Book bookconfig2 = Bean(Book.class);
System.out.println( "测试@Scope注解的类的设计模式"+bookconfig.equals(bookconfig2));
System.out.println( " The BookName is "
+Name()
+";and Book Author is "
+Author()
+";and Book price is "
+Price());
//SpringApplication.run(Application.class, args);//默认启动⽅式
}
}
哈哈哈哈,是的,如你所见,new⼀下这个配置类就好了。
然后直接把需要的类拿来⽤。
嗯,这样看起来是不需要每次⼿动去new⼀个,然⽽,并没有节约代码量啊衰。。。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论