本文共 2361 字,大约阅读时间需要 7 分钟。
@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
如下所示:
我定义了一个配置类package com.lhkj.pluto.config;import java.util.HashMap;import java.util.Map;import org.springframework.boot.SpringBootConfiguration;import org.springframework.context.annotation.Bean;@SpringBootConfigurationpublic class Config { @Bean public Map createMap(){ Map map = new HashMap(); map.put("username","gxz"); map.put("age",27); return map; }}
在main方法中,可以直接这样使用:
package com.lhkj.pluto;import java.util.Map;import java.util.concurrent.TimeUnit;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.lhkj.pluto.user.entity.User;/* * 发现@SpringBootApplication是一个复合注解, * 包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration * */@RestController@SpringBootApplicationpublic class App { @RequestMapping(value="/hello") public String Hello(){ return "hello"; } @Bean public Runnable createRunnable() { return () -> System.out.println("spring boot is running"); } public static void main( String[] args ) { System.out.println( "Hello World!" ); ConfigurableApplicationContext context = SpringApplication.run(App.class, args); context.getBean(Runnable.class).run(); System.out.println(context.getBean(User.class)); Map map = (Map) context.getBean("createMap"); //注意这里直接获取到这个方法bean int age = (int) map.get("age"); System.out.println("age=="+age); } @Bean public EmbeddedServletContainerFactory servletFactory(){ TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory(); //tomcatFactory.setPort(8011); tomcatFactory.setSessionTimeout(10,TimeUnit.SECONDS); return tomcatFactory; }}
转载地址:http://omxyz.baihongyu.com/