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 }
  • 相关阅读:
    Linux 用C语言实现简单的shell(1)
    线性回归 Linear regression(4) 局部加权回归
    线性回归 Linear regression(3) 线性回归的概率解释
    线性回归 Linear regression(2)线性回归梯度下降中学习率的讨论
    线性回归 Linear regression(1)线性回归的基本算法与求解
    超多JavaASP.NETPHPoracleandroidiphoneVC++项目实战视频教程免费下载
    struct 和 typedef struct
    soj1200- 简单的等式 (素数打表,找因子)
    soj1209- 最短的距离(精度问题)
    快排
  • 原文地址:https://www.cnblogs.com/juncaoit/p/11393996.html
Copyright © 2011-2022 走看看