From c5b66a8496c16a224d4d13382464bf43c946d5cb Mon Sep 17 00:00:00 2001 From: MangMang <362165265@qq.com> Date: Tue, 20 May 2025 23:37:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/programming/java/框架/springboot.md | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/programming/java/框架/springboot.md diff --git a/src/programming/java/框架/springboot.md b/src/programming/java/框架/springboot.md new file mode 100644 index 0000000..bb8bd5e --- /dev/null +++ b/src/programming/java/框架/springboot.md @@ -0,0 +1,68 @@ +## 1. BeanDefinitionRegistryPostProcessor + +```tex +BeanDefinitionRegistryPostProcessor是一个Spring的扩展接口,它可以在BeanFactoryPostProcessor之前修改或添加BeanDefinition。它的作用是可以在Spring容器中动态注册或移除Bean +``` + +## BeanDefinitionBuilder + +```tex +BeanDefinitionBuilder是一个类,它用于以编程方式创建新的Spring bean。Spring bean是Spring容器管理的对象,它们可以有各种属性和依赖。BeanDefinitionBuilder提供了一些方法,可以设置bean的类名、构造器参数、属性值、作用域等。BeanDefinitionBuilder可以创建不同类型的BeanDefinition对象,如GenericBeanDefinition、RootBeanDefinition和ChildBeanDefinition +``` + +## BeanDefinitionBuilder.genericBeanDefinition方法的作用 + +```tex +BeanDefinitionBuilder.genericBeanDefinition()是一个静态方法,它用于创建一个GenericBeanDefinition对象。GenericBeanDefinition是一种通用的BeanDefinition,它可以表示任何类型的bean。该方法可以接收一个Class对象或一个String对象作为参数,表示要创建的bean的类名。如果不传入参数,则返回一个空的GenericBeanDefinition对象 +``` + + + +## 2. ResourceLoaderAware + +```tex +ResourceLoaderAware是一个Spring的标记接口,它可以让实现了它的类获得一个ResourceLoader的引用。ResourceLoader是一个用于加载外部资源的统一接口,它可以通过不同的前缀来获取不同类型的资源。 +``` + +## 3. ApplicationContextAware + +```tex +ApplicationContextAware是一个接口,它允许一个bean访问它所属的ApplicationContext对象。Spring会自动通过调用setApplicationContext方法将ApplicationContext对象注入到实现了这个接口的bean中。这样,bean就可以通过ApplicationContext对象从Spring容器中获取其他的bean +``` + + + +## 4. System.getenv() + +```tex +System.getenv()是一个方法,它用于获取当前系统的环境变量的值。环境变量是一些由操作系统或其他程序设置的键值对,用于存储一些配置信息或路径等。System.getenv()可以接收一个字符串参数,表示要获取的环境变量的名称,如果存在则返回其值,否则返回null +``` + + + +## 5. FactoryBean + +`FactoryBean` 是 Spring 框架中的一个接口,它可以用来创建并返回一个对象的实例。它的泛型参数 `T` 指定了该工厂创建的对象类型。 + +`FactoryBean` 接口提供了三个方法: + +1. `T getObject()`:创建并返回一个 `T` 类型的对象实例。 +2. `Class getObjectType()`:返回该工厂创建的对象的类型。如果无法确定,则返回 `null`。 +3. `boolean isSingleton()`:返回该工厂创建的对象是否是单例模式。如果是,则返回 `true`,否则返回 `false`。 + +通常情况下,实现 `FactoryBean` 接口的类都是用来创建特殊的对象,比如说代理对象或者 AOP 相关的对象。在 Spring 配置文件中可以通过 `` 标签指定一个实现了 `FactoryBean` 接口的类,Spring 会在需要该对象时调用其 `getObject()` 方法来获取一个对象实例。 + + + +## 6. applicationContext.getBeansWithAnnotation() + +`applicationContext.getBeansWithAnnotation()` 方法可以用于获取标注了指定注解的 Bean 实例。它的参数是一个注解类型,返回值是一个 `Map` 类型,其中键是 Bean 名称,值是相应的 Bean 实例。 + +例如,如果要获取所有标注了 `MyAnnotation` 注解的 Bean 实例,可以使用以下代码: + +``` +javascriptCopy codeMap beansWithMyAnnotation = + applicationContext.getBeansWithAnnotation(MyAnnotation.class); +``` + +该方法可用于获取所有 `@Controller`、`@Service`、`@Component` 等注解标注的 Bean 实例,以便在程序运行时进行处理或操作。