Spring中如何使用@Import和@Bean注册bean呢?
下文笔者讲述使用@import和@Bean注解注册bean的方法分享
以前我们都知道使用一个@Configuration注解 和@Bean注解就可以将一个类交给Spring容器管理 那么还有一个方法使用@Import和@Bean注解也可以将一个Bean对象交给Spring容器管理 只需在Spring启动类上加入@Import(类全路径) 使用这种方式即可将一个Bean交给Spring容器管理例:@Import和@Bean将一个Bean交给Spring容器管理
package com.java265.annotation; import com.java265.config.MyBeanConfiguration; import org.springframework.context.annotation.Import; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.Runtime) @Import({MyBeanConfiguration.class}) public @interface EnableMyBean { } package com.java265.config; import com.java265.entity.MyBean; import org.springframework.context.annotation.Bean; public class MyBeanConfiguration { @Bean public MyBean myBean() { return new MyBean(); } } //启动类上加自定义的注解。 package com.java265; import com.java265.annotation.EnableMyBean; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableAsync; @SpringBootApplication @EnableMyBean public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } //方法2:@Configuration 标记的类 package com.java265.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.stereotype.Component; @Configuration @Import({MyBeanConfiguration.class}) public class MyBeanImportConfiguration { } //测试 package com.java265.controller; import com.java265.entity.MyBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @Autowired private MyBean myBean; @GetMapping("/test") public String test() { return myBean.sayHello(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。