@Import的简单使用

1) 在启动类上直接使用

2) 配合@Configuration使用

先定义一个需要@Import的类TestA.class

package com.example.demo;

/**
 * @author lyd
 * @Description:
 * @date 11:31
 */
public class TestA {

	public void printName() {
		System.out.println("类名:" + Thread.currentThread().getStackTrace()[1].getClassName());
	}

}

在启动类上直接使用

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Import;

@Import(TestA.class)
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

配合@Configuration使用

package com.example.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
 * @author lyd
 * @Description:
 * @date 11:33
 */
@Import(TestA.class)
@Configuration
public class ImportConfig {

	public ImportConfig() {
		System.out.println("配置类初始化");
	}

	public void testImportConfig() {
		System.out.println("ImportConfig有效");
	}


}

这样就可以通过@Autowired注解直接引用TestA这个类了

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author lyd
 * @Description:
 * @date 11:34
 */
@RestController
public class ImportAnnotionTest {


	@Autowired
	TestA testA;


	@RequestMapping("yy")
	public void yy() {
		testA.printName();
	}

}
posted @ 2021-06-24 14:23  西红柿里没有番茄  阅读(109)  评论(0编辑  收藏  举报