zoukankan      html  css  js  c++  java
  • Springboot配置类

    **配置类 MyAppConfig **

    
    import com.test.springboot.service.HelloService;
    import org.springframework.context.annotation.*;
    
    /**
     * @Configuration:注解告诉springboot当前类是一个配置类,是来替代之前的spring配置文件。
     * 在配置文件中用<bean></bean>标签添加组件
     */
    @Configuration
    @ComponentScan(basePackages = {"com.test.springboot"})
    public class MyAppConfig {
    
        //将方法的返回值添加到容器中,容器中这个组件默认的ID是方法名
        @Bean("helloService")
        public HelloService helloService() {
            System.out.println("配置类@bean给容器中添加组件了");
            return new HelloService();
        }
    }
    
    

    **HelloService **

    
    public class HelloService {
        public void say(String name) {
            System.out.println("****helloservice***" + name);
        }
    }
    
    

    测试类

    import com.test.springboot.bean.Person;
    import com.test.springboot.service.HelloService;
    import config.MyAppConfig;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    import org.springframework.test.context.junit4.SpringRunner;
    
    /**
     * springboot单元测试
     * 可以在测试期间很方便的类似编码一样进行自动注入等容器的功能
     */
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringBoot02ConfigApplicationTests {
    
        @Autowired
        Person person;
        @Autowired
        ApplicationContext ioc;
    
        @Test
        public void testHelloService() {
            System.out.println("****************************************");
            ApplicationContext context = new AnnotationConfigApplicationContext(MyAppConfig.class);
            HelloService helloService = (HelloService) context.getBean("helloService");
            System.out.println(helloService);
            boolean flag = context.containsBean("helloService");
            System.out.println("bean是否存在:" + flag);
    
            helloService.say("小明");
        }
    }
    

    执行结果

    2019-05-08 17:27:32.553  INFO 2588 --- [           main] c.t.s.SpringBoot02ConfigApplicationTests : No active profile set, falling back to default profiles: default
    2019-05-08 17:27:34.786  INFO 2588 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
    2019-05-08 17:27:35.123  INFO 2588 --- [           main] c.t.s.SpringBoot02ConfigApplicationTests : Started SpringBoot02ConfigApplicationTests in 3.134 seconds (JVM running for 4.183)
    ****************************************
    配置类@bean给容器中添加组件了
    com.test.springboot.service.HelloService@6eaa21d8
    bean是否存在:true
    ****helloservice***小明
    2019-05-08 17:27:35.741  INFO 2588 --- [       Thread-2] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
    
    Process finished with exit code 0
    

    注解描述:

    • @Configuration : 指明当前类是一个配置类来替代之前的Spring配置文件,Spring boot的配置类,相当于Spring的配置文件。

      • Spring,通过配置文件添加组件
      • Spring boot,通过配置类的方式添加组件
    • @ComponentScan :作用就是根据定义的扫描路径,把符合扫描规则的类装配到spring容器中

    • @Bean :将方法的返回值添加到容器中

  • 相关阅读:
    国王游戏
    选数
    双塔
    线段树
    树状数组及其他特别简单的扩展
    折半搜索
    VUE项目
    git_基本使用
    同源
    axios-使用
  • 原文地址:https://www.cnblogs.com/tidetrace/p/10844913.html
Copyright © 2011-2022 走看看