Spring中如何使用@Import和@Bean注册bean呢?

乔欣 Spring 发布时间:2023-04-13 21:34:30 阅读数:15173 1
下文笔者讲述使用@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();
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202304/6234.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者