提交测试
This commit is contained in:
parent
deeeb41145
commit
c5b66a8496
68
src/programming/java/框架/springboot.md
Normal file
68
src/programming/java/框架/springboot.md
Normal file
@ -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<T>
|
||||
|
||||
`FactoryBean<T>` 是 Spring 框架中的一个接口,它可以用来创建并返回一个对象的实例。它的泛型参数 `T` 指定了该工厂创建的对象类型。
|
||||
|
||||
`FactoryBean<T>` 接口提供了三个方法:
|
||||
|
||||
1. `T getObject()`:创建并返回一个 `T` 类型的对象实例。
|
||||
2. `Class<?> getObjectType()`:返回该工厂创建的对象的类型。如果无法确定,则返回 `null`。
|
||||
3. `boolean isSingleton()`:返回该工厂创建的对象是否是单例模式。如果是,则返回 `true`,否则返回 `false`。
|
||||
|
||||
通常情况下,实现 `FactoryBean<T>` 接口的类都是用来创建特殊的对象,比如说代理对象或者 AOP 相关的对象。在 Spring 配置文件中可以通过 `<bean>` 标签指定一个实现了 `FactoryBean<T>` 接口的类,Spring 会在需要该对象时调用其 `getObject()` 方法来获取一个对象实例。
|
||||
|
||||
|
||||
|
||||
## 6. applicationContext.getBeansWithAnnotation()
|
||||
|
||||
`applicationContext.getBeansWithAnnotation()` 方法可以用于获取标注了指定注解的 Bean 实例。它的参数是一个注解类型,返回值是一个 `Map<String, Object>` 类型,其中键是 Bean 名称,值是相应的 Bean 实例。
|
||||
|
||||
例如,如果要获取所有标注了 `MyAnnotation` 注解的 Bean 实例,可以使用以下代码:
|
||||
|
||||
```
|
||||
javascriptCopy codeMap<String, Object> beansWithMyAnnotation =
|
||||
applicationContext.getBeansWithAnnotation(MyAnnotation.class);
|
||||
```
|
||||
|
||||
该方法可用于获取所有 `@Controller`、`@Service`、`@Component` 等注解标注的 Bean 实例,以便在程序运行时进行处理或操作。
|
Loading…
Reference in New Issue
Block a user