Spring提供了一系列以Enable开头的注解,这些注解本质上是激活Spring的某些管理功能。比如,EnableWebMvc。 这个注解引入了MVC框架在Spring 应用中需要用到的所有bean。另外一个注解式EnableAsync, 它让Bean在spring 应用中支持异步功能。
1.依赖
groupId个人有所不同
<dependency>
<groupId>com.itheima</groupId>
<artifactId>springboot-enable-order</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
2.使用
需要引用的bean所在包写bean配置类
package com.itheima.config;
import com.itheima.domain.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class UserConfig {
@Bean
public User user(){
return new User();
}
}
前两种直接使用即可
/**
* @ComponentScan 扫描范围:当前引导类所在包及其子包
*
* com.example.demo
* com.itheima.config
*
* 1.使用@ComponentScan扫描com.itheima.config包
* 2.可以使用@import注解,加载类。这些类都会被spring创建并放入IOC容器
* 3.可以对Import注解进行封装
*/
@SpringBootApplication
//@ComponentScan("com.itheima.config")
//@Import(UserConfig.class)
@EnableUser
public class DemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class, args);
Object user = context.getBean("user");
System.out.println(user);
}
}
第三种方法需要在需要获取bean的那个moudle创建注释(@EnableUser)
package com.itheima.config;
import org.springframework.context.annotation.Import;
import java.lang.annotation.*;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(UserConfig.class)
public @interface EnableUser {
}
|