diff --git a/src/programming/java/框架/springboot.md b/src/programming/java/框架/springboot.md index bb8bd5e..2c6d3bf 100644 --- a/src/programming/java/框架/springboot.md +++ b/src/programming/java/框架/springboot.md @@ -1,68 +1,14 @@ +--- +icon: simple-icons:spring +title: SpringSecurity +date: 2025-05-07 +category: + - JAVA +tag: + - Spring +--- +test + + + ## 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 实例,以便在程序运行时进行处理或操作。