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

4.1网站建设的基本步骤免费自助小型网站

4.1网站建设的基本步骤,免费自助小型网站,东莞网站推广服务,成品软件网站大全推荐ApplicationContextInitializer SpringBoot 框架在设计之初#xff0c;为了有更好的兼容性#xff0c;在不同的运行阶段#xff0c;提供了非常多的可扩展点#xff0c;可以让程序员根据自己的需求#xff0c;在整个Spring应用程序运行过程中执行程序员自定义的代码Applic…ApplicationContextInitializer SpringBoot 框架在设计之初为了有更好的兼容性在不同的运行阶段提供了非常多的可扩展点可以让程序员根据自己的需求在整个Spring应用程序运行过程中执行程序员自定义的代码ApplicationContextInitializer就是众多扩展点中的一个扩展点 执行时机 ApplicationContextInitializer在IOC容器对象创建完成后执行可以对上下文环境做一些操作例如运行环境属性注册等 使用 1.自定义类实现ApplicationContextInitializer接口 public class MyApplicationcontextInitializer implements ApplicationContextInitializer {//ioc容器对象创建完毕后执行Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {//给上下文context对象注入环境属性//1.准备属性MapString, Object protMap new HashMap();protMap.put(applicationName,chessman);//2.获取一个属性资源管理对象//获取的环境独享ConfigurableEnvironment environment applicationContext.getEnvironment();//属性资源管理对象MutablePropertySources propertySources environment.getPropertySources();//3.注册propertySources.addLast(new MapPropertySource(proMap,protMap));} } 2.在META-INF/spring.factories配置文件中配置自定义的类 #接口全路径名称自定义类的全路径名称 自动补全路径ctrlalt空格 org.springframework.context.ApplicationContextInitializer com.cacb.initializer.MyApplicationcontextInitializer 最后在启动类中测试一下 SpringBootApplication public class APP {public static void main(String[] args) {ConfigurableApplicationContext context SpringApplication.run(APP.class, args);String applicationName context.getEnvironment().getProperty(applicationName);System.out.println(applicationName);} }执行结果 可以看到我们写的application方法已经得到运行 ApplicationListener 监听容器发布的事件允许程序员执行自己的代码完成事件驱动开发它可以监听容器初始化完成、初始化失败等事件。通常情况下可以使用监听器加载资源开启定时任务等 使用 1.自定义类实现ApplicationListener接口 public class MyListener implements ApplicationListener {Overridepublic void onApplicationEvent(ApplicationEvent event) {//ApplicationEvent event 对应的就是发布的事件ApplicationReadyEvent成功ApplicationFailedEvent失败if (event instanceof ApplicationReadyEvent){//容器初始化成功System.out.println(MyListener 容器初始化成功);}if (event instanceof ApplicationFailedEvent){//容器初始化失败System.out.println(MyListener 容器初始化失败);}} }2.在META-INF/spring.facoytries配置文件中配置自定义的类 org.springframework.context.ApplicationListener com.cacb.listener.MyListener 运行启动类查看容器是否成功初始化 正常情况 在applicationcontextinitializer中通过1/0制造一个异常再次运行看容器是否能成功初始化 容器初始化失败符合上面写的逻辑判断 执行时机 IOC容器发布事件之后执行通常用于资源加载、定时任务发布等 BeanFactory Bean容器的根接口提供Bean对象的创建、配置、依赖注入等功能 常用实现类 最常见的两个实现 ApplicationConfigServletApplicationContext DefaultListabkeBeanFactory BeanDefinition 用于描述Bean包括Bean的名称Bean的属性Bean的行为实现的接口添加的注解等等。Spring中Bean在创建之前都需要封装成对应的BeanDefinition然后根据BeanDefinition进一步创建Bean对象 接口继承体系 BeanFactoryPostProcessor Bean工厂后置处理器当BeanFactory准备好了以后(Bean初始化之前)会调用该接口i的postProcessBeanFactory方法经常用于新增BeanDefinition 使用 自定义类实现BeanFactoryPostProcessor接口在其中注册BeanDefinition Component public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor {//当BeanFactory被实例化好后(Bean创建之前),回调这个函数注册一些BeanDefinitionOverridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {//注册一个people的BeanDifinitiomGenericBeanDefinition gbdf new GenericBeanDefinition();gbdf.setBeanClass(people.class);//向下强转DefaultListableBeanFactory dbf (DefaultListableBeanFactory) beanFactory;dbf.registerBeanDefinition(people,gbdf);} } Aware 感知接口Spring提供的一种机制通过实现该接口重写方法可以感知Spring应用程序执行过程中的一些变化。Spring会判断当前的Bean有没有实现Aware接口如果实现了会在特定的实际回调接口对应的方法。 使用  自定义类继承三个接口使用Compent注解来让Spring自动注册该Bean Component public class child implements BeanNameAware, BeanClassLoaderAware, BeanFactoryAware {//BeanClassLoaderAware接口的回调方法Overridepublic void setBeanClassLoader(ClassLoader classLoader) {System.out.println(child setBeanClassLoader classLoader);}//BeanFactoryAware接口的回调方法Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {System.out.println(child setBeanFactory beanFactory);}//BeanNameAware接口的回调方法Overridepublic void setBeanName(String name) {System.out.println(child setBeanName name);} }InitializingBean/DisposableBean 初始化接口当Bean被实例化好后会回调里面的函数经常用于做一些加载资源的工作 销毁接口当Bean被销毁之前会回调里面的函数经常用于做一些资源释放的工作 使用 自定义类继承两个接口重写相关方法使用Compent注解来让Spring自动注册该Bean Component public class student implements InitializingBean , DisposableBean {//销毁方法Overridepublic void destroy() throws Exception {System.out.println(student destroy);}//初始化方法Overridepublic void afterPropertiesSet() throws Exception {System.out.println(student afterPropertiesSet);} }也可以用PostConstruct和PreDestroy两个注解来书写初始化和销毁方法且如果注解对应方法和实现的接口方法同时存在会先运行注解对应的方法再运行实现的接口方法(初始化和销毁时都是) PostConstructpublic void init(){System.out.println(student PostConstruct);}PreDestroypublic void destroy_method(){System.out.println(student destroy_method);} BeanPostProcessor Bean的后置处理器当Bean对象初始化之前及初始化之后会回调该接口对应的方法两个方法如下 postProcessBeforeInitialization: Bean对象初始化之前调用 postProcessAfterInitialization: Bean对象初始化之后调用 使用 自定义类实现BeanPostProcessor接口重写 两个方法通过Componet将其交给IOC容器 Component public class MyBeanPostProcessor implements BeanPostProcessor {//初始化之前调用Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println(MyBeanPostProcessor---BeforeInitialization---beanName);return BeanPostProcessor.super.postProcessBeforeInitialization(bean, beanName);}//初始化之后调用Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println(MyBeanPostProcessor---AfterInitialization---beanName);return BeanPostProcessor.super.postProcessAfterInitialization(bean, beanName);} }
http://www.zqtcl.cn/news/250796/

相关文章:

  • 普通网站 多大空间网站开发报告参考文献
  • 来宾住房和城乡建设网站pc网站建设哪
  • WordPress一键开启全站SSL东莞企业网站建设公司
  • 青海省公路建设管理局官方网站wordpress 加入地图
  • 建湖专业做网站的公司如何制作wordpress网站地图
  • 做自媒体查找素材的网站石家庄网站建设费用
  • 建立局域网网站怎么做外国网站
  • 绍兴专业网站建设公司网站seo设计
  • 开发网站需要多久建设银行招聘网站
  • 靖江 建设局网站安阳做网站的公司有哪些
  • 网站title在哪里用discuz做的门户网站
  • 郑州定制网站推广工具产品网络舆情管理
  • 个人网站的建设方法和过程七牛云存储代替WordPress
  • 网站应用网站开发android开发工具有哪些
  • 农业信息门户网站建设方案教做糕点的网站
  • 网站上的分享手机网站免费建设平台
  • 有哪个网站专业做漫画素材的wordpress显示问题
  • 网站开发工程师月薪网站网页设计培训机构
  • 专业网站运营备案名称网站名称
  • 盐城市建设局网站企业网站建设流程与方法 论文
  • 青岛信息推广网站营销自己的网站
  • wp博客 婚庆网站模板摄影网页面制作
  • 大型商城网站建设学计算机前端好就业吗
  • 杭州 电子商务网站建设专门做酒店自助餐的网站
  • 如何备份网站数据库网站用户体验模型
  • 网站域名注册流程办公室装修风格
  • a站免费最好看的电影片推荐方正隶变简体可以做网站用么
  • 创同盟做网站找公司做网站需要咨询什么问题
  • 西安行业网站株洲高端网站建设
  • 优化网站流量商城网站建设软件