zoukankan      html  css  js  c++  java
  • @SpringBootConfiguration注解

    @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;
    
    @SpringBootConfiguration
    public 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
    @SpringBootApplication
    public 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;
            
        }
    }
  • 相关阅读:
    结构与联合
    信号与槽知识点
    函数
    元对象编译器moc
    堆与栈
    More Effective C++ (虚拟构造函数)
    重载 覆盖 隐藏
    继承专题
    PowerDesigner 的常用方法(转)
    搜狗输入法导入Google词库bug
  • 原文地址:https://www.cnblogs.com/lm970585581/p/13066066.html
Copyright © 2011-2022 走看看