zoukankan      html  css  js  c++  java
  • 008 @Import作用

    一:

    1.说明

      在应用中,有时没有把某个类注入到IOC容器中,但在运用的时候需要获取该类对应的bean,此时就需要用到@Import注解。

    二:示例一

    1.说明

      基于007接着做的测试。

    2.Bean

      新建Cat,Dog类

      

    3.使用Import

     1 package com.jun.web;
     2 
     3 import com.jun.enableautoconfiguration.Hello;
     4 import com.jun.enableautoconfiguration.impo.Dog;
     5 import org.slf4j.Logger;
     6 import org.slf4j.LoggerFactory;
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.boot.SpringApplication;
     9 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    10 import org.springframework.boot.autoconfigure.SpringBootApplication;
    11 import org.springframework.context.ConfigurableApplicationContext;
    12 import org.springframework.context.annotation.Import;
    13 import org.springframework.core.env.ConfigurableEnvironment;
    14 import org.springframework.web.bind.annotation.RequestMapping;
    15 import org.springframework.web.bind.annotation.RestController;
    16 
    17 
    18 @EnableAutoConfiguration
    19 @RestController
    20 @Import({Dog.class})
    21 public class WebApplication {
    22     private static final Logger logger = LoggerFactory.getLogger(WebApplication.class);
    23 
    24     @Autowired
    25     private Hello hello;
    26 
    27     @RequestMapping("/")
    28     public String index() {
    29         return hello.sayHello();
    30     }
    31 
    32     public static void main(String[] args) {
    33         ConfigurableApplicationContext context = SpringApplication.run(WebApplication.class, args);
    34         ConfigurableEnvironment environment = context.getEnvironment();
    35         logger.info("hello.msg:{}",environment.getProperty("hello.msg"));
    36 
    37         logger.info("dog:{}",context.getBean(Dog.class));
    38 
    39     }
    40 
    41 }

      效果:

    2019-08-22 13:59:14.569  INFO 7812 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2019-08-22 13:59:14.571  INFO 7812 --- [           main] com.jun.web.WebApplication               : Started WebApplication in 1.497 seconds (JVM running for 2.169)
    2019-08-22 13:59:14.572  INFO 7812 --- [           main] com.jun.web.WebApplication               : hello.msg:uuibiu
    2019-08-22 13:59:14.573  INFO 7812 --- [           main] com.jun.web.WebApplication               : dog:com.jun.enableautoconfiguration.impo.Dog@4cfa8227

    三:示例二

    1.说明

      现在在一个配置类中进行配置bean,然后在需要的时候,只需要导入这个配置就可以了

      不要配置太多类进来。

    2.配置类

     1 package com.jun.enableautoconfiguration.impo;
     2 
     3 import org.springframework.context.annotation.Bean;
     4 import org.springframework.context.annotation.ComponentScan;
     5 import org.springframework.context.annotation.Configuration;
     6 
     7 @Configuration
     8 public class MyConfig {
     9     @Bean
    10     public Dog getDog(){
    11         return new Dog();
    12     }
    13 
    14 }

    3.使用

     1 package com.jun.web;
     2 
     3         import com.jun.enableautoconfiguration.Hello;
     4         import com.jun.enableautoconfiguration.impo.Dog;
     5         import com.jun.enableautoconfiguration.impo.MyConfig;
     6         import org.slf4j.Logger;
     7         import org.slf4j.LoggerFactory;
     8         import org.springframework.beans.factory.annotation.Autowired;
     9         import org.springframework.boot.SpringApplication;
    10         import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    11         import org.springframework.boot.autoconfigure.SpringBootApplication;
    12         import org.springframework.context.ConfigurableApplicationContext;
    13         import org.springframework.context.annotation.Import;
    14         import org.springframework.core.env.ConfigurableEnvironment;
    15         import org.springframework.web.bind.annotation.RequestMapping;
    16         import org.springframework.web.bind.annotation.RestController;
    17 
    18 
    19 @EnableAutoConfiguration
    20 @RestController
    21 @Import({MyConfig.class})
    22 public class WebApplication {
    23     private static final Logger logger = LoggerFactory.getLogger(WebApplication.class);
    24 
    25     @Autowired
    26     private Hello hello;
    27 
    28     @RequestMapping("/")
    29     public String index() {
    30         return hello.sayHello();
    31     }
    32 
    33     public static void main(String[] args) {
    34         ConfigurableApplicationContext context = SpringApplication.run(WebApplication.class, args);
    35         ConfigurableEnvironment environment = context.getEnvironment();
    36         logger.info("hello.msg:{}",environment.getProperty("hello.msg"));
    37 
    38         logger.info("dog:{}",context.getBean(Dog.class));
    39 
    40     }
    41 
    42 }
  • 相关阅读:
    78. Subsets
    93. Restore IP Addresses
    71. Simplify Path
    82. Remove Duplicates from Sorted List II
    95. Unique Binary Search Trees II
    96. Unique Binary Search Trees
    312. Burst Balloons
    程序员社交平台
    APP Store开发指南
    iOS框架搭建(MVC,自定义TabBar)--微博搭建为例
  • 原文地址:https://www.cnblogs.com/juncaoit/p/11393996.html
Copyright © 2011-2022 走看看