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

滁州网站建设费用尚石设计深圳有限公司

滁州网站建设费用,尚石设计深圳有限公司,无忧企业网站系统,网站虚拟主持人在使用 Spring 框架后#xff0c;对象以 Bean 的形式统一交给 IOC 容器去创建和管理。现阶段主流的方式是基于 SpringBoot 框架#xff0c;基于注解的方式实现 Bean 的创建#xff0c;但在原生 Spring 框架中其实存在三种创建 Bean 的方式。 一、基础类 BeanProcess 实体类…在使用 Spring 框架后对象以 Bean 的形式统一交给 IOC 容器去创建和管理。现阶段主流的方式是基于 SpringBoot 框架基于注解的方式实现 Bean 的创建但在原生 Spring 框架中其实存在三种创建 Bean 的方式。 一、基础类 BeanProcess 实体类虽然加了 Component 等三个注解但只在注解方式创建 Bean 时用到了。 package com.nineya.spring.entity;import lombok.Getter; import lombok.Setter; import org.springframework.stereotype.Component;import javax.annotation.PostConstruct; import javax.annotation.PreDestroy;Getter Setter Component(test) public class BeanProcess {private String name;PostConstructpublic void init() {System.out.println(Bean InitMethodName);}PreDestroypublic void destroy() {System.out.println(Bean DestroyMethodName);}}后置处理器类 BeanPostProcessor 后置处理器。 package com.nineya.spring.processor;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.stereotype.Component;Component public class NineyaBeanPostProcessor implements BeanPostProcessor {Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println(BeanPostProcessor.postProcessAfterInitialization( beanName ) 后置处理器);return bean;}Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println(BeanPostProcessor.postProcessBeforeInitialization( beanName ) 后置处理器);return bean;} }BeanFactoryPostProcessor 后置处理器。 package com.nineya.spring.processor;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.stereotype.Component;Component public class NineyaBeanFactoryPostProcessor implements BeanFactoryPostProcessor {Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {System.out.println(BeanFactoryPostProcessor.postProcessBeanFactory 后置处理器);} }二、三种创建方式 2.1 JavaApi 方式 JavaApi 方式没有注册 BeanFactoryPostProcessor 后置处理器的接口应该在注册添加完所有 BeanDefinition 后手动调用执行 BeanFactoryPostProcessor 后置处理器方法。 private static void javaApi() {// 创建bean工厂DefaultListableBeanFactory context new DefaultListableBeanFactory();//构造bean定义GenericBeanDefinition gbd new GenericBeanDefinition();gbd.setBeanClass(BeanProcess.class);// 设置属性ListPropertyValue propertyValues new ArrayList();propertyValues.add(new PropertyValue(name, test));gbd.setPropertyValues(new MutablePropertyValues(propertyValues));// 设置生命周期方法gbd.setInitMethodName(init);gbd.setDestroyMethodName(destroy);//注册到环境上下文context.registerBeanDefinition(test, gbd);context.addBeanPostProcessor(new NineyaBeanPostProcessor());new NineyaBeanFactoryPostProcessor().postProcessBeanFactory(context);// 通过class取得beanBeanProcess beanProcess context.getBean(BeanProcess.class);System.out.println(beanProcess : beanProcess.hashCode()); }2.2 xml方式 创建 bean 的 xml 文件。 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdbean classcom.nineya.spring.entity.BeanProcess nametest init-methodinit destroy-methoddestroyproperty namename valuetest //bean!-- 注册处理器 --bean classcom.nineya.spring.processor.NineyaBeanPostProcessor/bean classcom.nineya.spring.processor.NineyaBeanFactoryPostProcessor/ /beans读取 xml 文件创建 bean 工厂。 private static void xmlFile() {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(spring.xml);// 通过class取得beanBeanProcess beanProcess context.getBean(BeanProcess.class);System.out.println(beanProcess : beanProcess.hashCode()); }2.3 注解方式 private static void annotation() {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext();// 配置注解扫描路径context.scan(BeanLifecycleMain.class.getPackage().getName());context.refresh();// 通过class取得beanBeanProcess beanProcess context.getBean(BeanProcess.class);System.out.println(beanProcess : beanProcess.hashCode()); }
http://www.dnsts.com.cn/news/123527.html

相关文章:

  • 廊坊高端网站建设东莞网站建设关键词
  • 怎么在建设银行网站留言网站型与商城型有什么区别吗
  • 网站网站怎么优化关键词排名房地产类型的网站建设
  • 长沙网站seo费用广州网站建设乐云seo模板中心
  • 网站左侧固定广告代码wordpress首页是什么意思
  • 网站建设与管理ppt模板下载python编程是干嘛的
  • 杭州网站建设官网蓝韵网络广州餐饮管理有限公司
  • 深圳电信网站备案注册深圳公司
  • 行政审批网站开发文档wordpress苏醒主题grace
  • 网站建设所出现的问题网站PC关键词怎么做
  • 微信小程序与微网站韩国网站never官网
  • 那个企业建网站好wordpress 星 评分
  • 亳州建设局网站公司网站 域名 cn com
  • 注册一个公司的所有流程单页网站seo优化
  • 海南茶叶网站建设货源之家
  • 基于阿里云的电商网站建设wordpress 粉丝
  • 网站建设介绍的ppt网站建设套模
  • 做网站 百度推广桐乡哪里有做网站的
  • 做网站需要什么域名优秀的国内企业网站
  • 百度抓取不到网站电信开放81端口怎样做网站
  • 数据线厂家东莞网站建设软文营销的写作技巧有哪些
  • 免费的设计网站有哪些广州新闻最新消息今天
  • 网站建设属于硬件还是软件学校网站建设电话
  • 做设备推广的网站phpcms仿站
  • 流浪动物网站开发网站建设公众号
  • 双语网站模板下载怎么优化整站
  • 长沙本土网站建设公司做网站接电话一般要会什么问题
  • 腾讯云建设网站经营之道的优势
  • 网站工程师培训学校wordpress lms插件
  • 企业网站的建立网络虚拟社区时对于企业seo168小视频