当前位置: 首页 > news >正文

网站建设所需硬件微博推广

网站建设所需硬件,微博推广,前端登陆页面设计模板,net创建网站之后怎么做Aware 接口的回调方法是在 Bean 实例化之后调用的。具体来说,这些回调方法是在依赖注入完成后,但在 Bean 完全初始化之前调用的。这是 Spring 容器管理 Bean 生命周期的一部分 完成了属性赋值之后,Spring会执行一些回调,包括&…

Aware 接口的回调方法是在 Bean 实例化之后调用的。具体来说,这些回调方法是在依赖注入完成后,但在 Bean 完全初始化之前调用的。这是 Spring 容器管理 Bean 生命周期的一部分

完成了属性赋值之后,Spring会执行一些回调,包括: 1. BeanNameAware:回传beanName给bean对象。 2. BeanClassLoaderAware:回传classLoader给bean对象。 3. BeanFactoryAware:回传beanFactory

1、BeanNameAware:

  • 回调目的:告诉 Bean 它自己的名字。
  • 大白话解释:Spring 会调用 setBeanName(String name) 方法,把 Bean 的名字告诉给 Bean 本身。这样,Bean 就知道它在 Spring 容器中的名字是什么。
  • 应用场景:如果你的 Bean 需要知道自己在 Spring 容器中的名字,可以实现 BeanNameAware 接口。

2、BeanClassLoaderAware:

  • 回调目的:告诉 Bean 它的类加载器。
  • 大白话解释:Spring 会调用 setBeanClassLoader(ClassLoader classLoader) 方法,把类加载器告诉给 Bean 本身。这样,Bean 就可以使用这个类加载器来加载类。
  • 应用场景:如果你的 Bean 需要动态加载类,可以实现 BeanClassLoaderAware 接口。

3、BeanFactoryAware:

  • 回调目的:告诉 Bean 它所在的 BeanFactory。
  • 大白话解释:Spring 会调用 setBeanFactory(BeanFactory beanFactory) 方法,把 BeanFactory 的引用告诉给 Bean 本身。这样,Bean 就可以访问和操作整个 Spring 容器。
  • 应用场景:如果你的 Bean 需要访问 Spring 容器中的其他 Bean,或者需要执行一些与容器相关的操作,可以实现 BeanFactoryAware 接口。

当然Spring中还有很多其它功能的aware接口或者自定义aware接口

具体示例

1. 定义 MyBean 类
首先,定义一个 MyBean 类,实现 BeanNameAware、BeanClassLoaderAware 和 BeanFactoryAware 接口:

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.BeanClassLoaderAware;public class MyBean implements BeanNameAware, BeanClassLoaderAware, BeanFactoryAware {private String beanName;private ClassLoader classLoader;private BeanFactory beanFactory;@Overridepublic void setBeanName(String name) {this.beanName = name;System.out.println("Bean name is: " + name);}@Overridepublic void setBeanClassLoader(ClassLoader classLoader) {this.classLoader = classLoader;System.out.println("Class loader is: " + classLoader);}@Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {this.beanFactory = beanFactory;System.out.println("BeanFactory is: " + beanFactory);}public void doSomething() {System.out.println("Doing something...");// 你可以在这里使用 beanName、classLoader 和 beanFactory}
}

2. 定义配置类
接下来,定义一个配置类,使用 @Configuration 和 @Bean 注解来配置 MyBean:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class AppConfig {@Beanpublic MyBean myBean() {return new MyBean();}
}

3. 启动 Spring 应用

最后,编写一个主类来启动 Spring 应用,并获取 MyBean 实例

import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Main {public static void main(String[] args) {// 创建 Spring 应用上下文AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);// 获取 MyBean 实例MyBean myBean = context.getBean(MyBean.class);// 调用 MyBean 的方法myBean.doSomething();// 关闭上下文context.close();}
}

运行结果
当你运行 Main 类时,你会看到类似以下的输出

解释
1、MyBean 类:

  • 实现了 BeanNameAware、BeanClassLoaderAware 和 BeanFactoryAware 接口。
  • 重写了 setBeanName、setBeanClassLoader 和 setBeanFactory 方法,在这些方法中打印相关信息。

2、AppConfig 类:

  • 使用 @Configuration 注解标记为配置类。
  • 使用 @Bean 注解定义 MyBean 的 Bean。

3、Main 类:

  • 使用 AnnotationConfigApplicationContext 创建 Spring 应用上下文,并传入配置类 AppConfig。
  • 从上下文中获取 MyBean 实例,并调用其 doSomething 方法。
  • 最后关闭上下文。

通过这种方式,你可以使用纯 Java 配置来实现 BeanNameAware、BeanClassLoaderAware 和 BeanFactoryAware 回调

当然还有更多的

ApplicationContextAwareProcessor会在初始化前这个步骤中进行其他Aware的回调:
  • i. EnvironmentAware:回传环境变量
  • ii. EmbeddedValueResolverAware:回传占位符解析器
  • iii. ResourceLoaderAware:回传资源加载器
  • iv. ApplicationEventPublisherAware:回传事件发布器
  • v. MessageSourceAware:回传国际化资源
  • vi. ApplicationStartupAware:回传应用其他监听对象,可忽略
  • vii. ApplicationContextAware:回传Spring容器ApplicationContext
http://www.mmbaike.com/news/82252.html

相关文章:

  • 做设计哪个网站可以接单深圳网络营销推广
  • ssm框架做电影网站软文素材
  • 网站排名易下拉教程哈尔滨百度网站快速优化
  • wordpress后台慢插件优化网站标题和描述的方法
  • 小米新手机发布seo排名哪家公司好
  • 韩雪冬 网站百度站长工具链接提交
  • php网站留言板怎么做怎么样优化关键词排名
  • 王爷到达达兔seo引擎优化怎么做
  • 北京已经开始二次感染了宁波seo优化费用
  • 宿迁建设局网站拆除备案seo教程论坛
  • 目前做那些网站能致富网页设计与制作案例教程
  • 网站建设买服务器价格超级外链吧
  • 自己做的网站让别人看到google权重查询
  • 西昌市做网站的广告软文范例大全100
  • 集团网站建设教程nba最新新闻
  • 做公益选哪个网站好谷歌竞价排名推广公司
  • 网络及建设公司网站代做关键词收录排名
  • wordpress 幻灯片手机端字体大小靠谱seo外包定制
  • 建站网站建设seo北京网站推广
  • 烟台提供网站设计制作自己可以做网站吗
  • 网站建设几种语言对比磁力猫torrentkitty官网
  • 黄岛开发区做网站的公司如何优化关键词搜索排名
  • wordpress如何改代码蚁百杭州网站seo优化
  • 涛飞网站建设武汉刚刚发生的新闻
  • 长春网站排名优化报价深圳网站设计公司排行
  • 哪里有网站建设官网办公软件速成培训班
  • 武汉汉口做网站推广关键词排名优化教程
  • 企业网站建设可以分为( )交互层次提升关键词排名有哪些方法
  • 南通网站建设外包客服外包平台
  • 申请网站到哪里网络推广渠道有哪些