首页 > 其他分享 >springboot使用自定义注解将对象注入容器中

springboot使用自定义注解将对象注入容器中

时间:2024-10-16 16:09:59浏览次数:7  
标签:applicationContext springboot 自定义 org bean import 注解 public

在Spring Boot中,你可以通过自定义注解和Spring的`BeanPostProcessor`来将对象注入到Spring容器中。以下是一个简单的实现步骤:

1. **创建自定义注解**:

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)
   public @interface CustomComponent {
   }

  

2. **实现BeanPostProcessor**:

import org.springframework.beans.BeansException;
   import org.springframework.beans.factory.config.BeanPostProcessor;
   import org.springframework.stereotype.Component;
   import org.springframework.context.ApplicationContext;
   import org.springframework.context.ApplicationContextAware;

   @Component
   public class CustomComponentProcessor implements BeanPostProcessor, ApplicationContextAware {

       private ApplicationContext applicationContext;

       @Override
       public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
           if (bean.getClass().isAnnotationPresent(CustomComponent.class)) {
               // Register the bean in the application context
               ((ConfigurableApplicationContext) applicationContext).getBeanFactory().registerSingleton(beanName, bean);
           }
           return bean;
       }

       @Override
       public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
           this.applicationContext = applicationContext;
       }
   }

  

3. **使用自定义注解**:

@CustomComponent
   public class MyCustomBean {
       // Your custom bean logic
   }

  

通过以上步骤,你可以使用`@CustomComponent`注解来标记需要注入到Spring容器中的类。`CustomComponentProcessor`会在Spring初始化时自动处理这些类并将其注册到容器中。

标签:applicationContext,springboot,自定义,org,bean,import,注解,public
From: https://www.cnblogs.com/ixtao/p/18470199

相关文章

  • 基于数据可视化+SpringBoot+Vue的考研备战交流与分享平台设计和实现(源码+论文+部署讲
     博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs......
  • laravel 中实现注解注入
    laravel中实现注解注入创建注解类<?phpdeclare(strict_types=1);namespaceApp\Support\Attributes;#[\Attribute(\Attribute::TARGET_PROPERTY)]readonlyclassInjection{publicfunction__construct(public?string$propertyType=null,p......
  • 使用 Manim 绘制自定义函数曲线
    用动画来展示函数曲线,是一种非常直观、酷炫的方法。一、Manim简介Manim(MathematicalAnimationEngine)是一个用于创建数学动画的Python库。它允许您以编程的方式创建复杂的动画,包括函数曲线、几何图形和动画效果。Manim由3Blue1Brown(GrantSanderson)创建,他在YouTube上使......
  • SpringBoot+mail 轻松实现各类邮件自动推送
    在实际的项目开发过程中,经常需要用到邮件通知功能。例如,通过邮箱注册,邮箱找回密码,邮箱推送报表等等,实际的应用场景非常的多。早期的时候,为了能实现邮件的自动发送功能,通常会使用JavaMail相关的api来完成。后来Spring推出的JavaMailSender工具,进一步简化了邮件的自动发送......
  • 修改公司网站?网站模板如何自定义修改?
    修改公司网站并自定义网站模板是一个涉及多个步骤的过程。以下是一些基本的指导步骤,帮助您完成这一任务:1.登录网站后台管理访问后台:通常在您的域名后面加上 /admin 或 /wp-admin 等路径,例如 https://yourdomain.com/admin。登录:使用您的管理员账号和密码登录。2.选择......
  • 基于SpringBoot+Vue的校园周边美食探索及分享平台的设计与实现(带文档)
    基于SpringBoot+Vue的校园周边美食探索及分享平台的设计与实现(带文档)开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue等工具:IDEA/Ecilpse、Navicat、Maven源码校园周边美食探索及分享平台是一个旨在为校园用户提供便捷的美食发现和分享服务的系统。该平台通过现......
  • 支付宝沙箱版(什么是支付宝沙箱、配置支付宝沙箱、配置内网穿透、在SpringBoot项目中对
    文章目录0.前言1.什么是支付宝沙箱2.配置支付宝沙箱2.1沙箱应用的应用信息(获取app-id和gateway-url)2.2沙箱账号的商家信息和买家信息2.3下载秘钥工具2.4生成秘钥(获取private-key)2.5配置秘钥(获取alipay-public-key)3.配置内网穿透3.1使用cpolar实现内网穿透3.2......
  • java毕业设计-基于Springboot的社区医疗服务可视化系统【d代码+论文+PPT】
    全文内容包括:1、采用技术;2、系统功能;3、系统截图;4、部分代码;5、配套内容。索取方式见文末微信号,欢迎关注收藏!一、采用技术语言:Java1.8框架:Springboot数据库:MySQL5.7、8.0开发工具:IntelliJIDEA旗舰版其他:Maven3.8以上二、系统功能管理员管理:负责系统后台维护,确保运行......
  • spring上 -基于注解配置bean,动态代理,AOP笔记
     用的是jdk8,spring框架里jar包的下载可以自己搜到注解用到的jar包。  60,注解配置Bean快速入门 基本介绍 代码结构: UserDao.javapackagecom.hspedu.spring.component;importorg.springframework.stereotype.Repository;/**使用@Repository标识该......
  • springboot超市商品管理系统-计算机毕业设计源码55289
    摘 要随着信息技术的快速发展和普及,传统的超市管理模式已经无法满足现代商业的需求。为了提高超市的管理效率,优化商品销售流程,本文提出了一种基于SpringBoot框架的超市商品管理系统。该系统结合了现代软件开发技术,包括MySQL数据库、Java语言等,实现了对超市商品的全面管理。......