当前位置: 首页 > news >正文 二手房地产中介网站建设泰兴市 建设安全监察网站 news 2025/11/5 2:04:25 二手房地产中介网站建设,泰兴市 建设安全监察网站,网站建设需要服务器支持 吗,天辰建设网官网【README】 本文总结自《spring揭秘》#xff0c;作者王福强#xff0c;非常棒的一本书#xff0c;墙裂推荐#xff1b; spring容器根据配置元素组装可用系统分2个阶段#xff0c;包括spring容器启动#xff0c; springbean实例化阶段#xff1b; 本文详细分析spring容…【README】 本文总结自《spring揭秘》作者王福强非常棒的一本书墙裂推荐 spring容器根据配置元素组装可用系统分2个阶段包括spring容器启动 springbean实例化阶段 本文详细分析spring容器启动阶段 【1】Spring容器根据配置元素组装可用系统的过程 Spring容器根据配置元素组装可用系统的过程有2个阶段 spring容器启动 springbean实例化 容器启动阶段 加载配置元数据xml文件然后使用工具类如 BeanDefinitionReader对加载的配置元数据进行解析并将结果编组为 BeanDefinition 注册到相应的 BeanDefinitionRegistry这样容器启动工作就完成了 Bean实例化阶段 容器会首先检查所请求的对象之前是否已经初始化若没有则根据注册的BeanDefinition实例化bean并为其注入依赖。 如果该对象实现了某些回调接口也会根据回调接口的要求来装配它 当该对象被装配完成后 容器会立即将其返回给请求方使用 【2】BeanFactoryPostProcessor-Bean工厂后置处理器 BeanFactoryPostProcessor Spring提供了叫做 BeanFactoryPostProcessor 容器扩展机制 该机制允许我们在容器启动阶段完成后新增逻辑 常用BeanFactoryPostProcessor PropertySourcePlaceHolderConfigurer属性占位符配置器 如jdbc连接串属性通过properties文件的属性值 替换 占位符PropertyOverrideConfigurer 属性覆盖替换配置器如修改属性值CustomEditorConfigurer自定义编辑器配置器用于不同数据格式间的转换 【补充】 1上述2个BeanFactoryPostProcessor 都是通过修改BeanDefinition 来对属性进行替换或修改的 2 CustomerEditorConfigurer没有修改BeanDefinition而是把后期要用到的信息注册到容器 【2.1】属性占位符配置器使用场景代码 PropertySourcesPlaceholderConfigurer-属性占位符配置器使用场景初始化数据库连接池属性 并利用 PropertyOverrideConfigurer 重写属性值 【PropertySourcesPlaceholderConfigurerMain】入口 public class PropertySourcesPlaceholderConfigurerMain {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(beans0404.xml);BasicDataSource dataSource context.getBean(dataSource, BasicDataSource.class);System.out.println(dataSource.getUrl());System.out.println(dataSource.getUserName());System.out.println(dataSource.getDriverClassName());} }【beans0404.xml】 !-- 为 PropertySourcesPlaceholderConfigurer 这个BeanFactoryPostProcessor 配置属性文件地址 --bean classorg.springframework.context.support.PropertySourcesPlaceholderConfigurerproperty namelocationsvaluejdbc.properties/value/property/bean!-- 为 PropertyOverrideConfigurer 这个BeanFactoryPostProcessor 配置重写属性文件的地址 --bean classorg.springframework.beans.factory.config.PropertyOverrideConfigurerproperty namelocations valueds-pool-override.properties //bean!-- 数据源bean其中属性值通过变量指定变量通过 BeanFactoryPostProcessor 设置值--bean iddataSource classorg.apache.commons.dbcp2.BasicDataSource destroy-methodcloseproperty nameurlvalue${jdbc.url}/value/propertyproperty namedriverClassNamevalue${jdbc.driverClassName}/value/propertyproperty nameusernamevalue${jdbc.username}/value/propertyproperty namepasswordvalue${jdbc.password}/value/property/bean【jdbc.properties】 jdbc.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneAsia/Shanghai jdbc.driverClassNamecom.mysql.cj.jdbc.Driver jdbc.usernameroot jdbc.passwordroot 【ds-pool-override.properties】重写属性值的属性文件 dataSource.usernamerootOverride【打印日志】 jdbc:mysql://localhost:3306/mybatis?serverTimezoneAsia/Shanghai rootOverride com.mysql.cj.jdbc.Driver【2.2】CustomerEditorConfigurer-自定义编辑器配置器 应用场景 xml配置的bean信息都是字符串但最终都要要转换为bean对象的从字符串类型到对象类型的转换就是由CustomerEditorConfigurerEditorConfigurer来完成的 只要为每种对象类型提供一个 PropertyEditor就可以做类型转换 Spring 提供的PropertyEditor列表 (1) StringArrayPropertyEditor把符合csv格式的字符串转换为String[] 数组的形式类似的还有 ByteArrayPropertyEditor CharArrayPropertyEditor(2) ClassEditor 根据class名称转为 Class对象(3) FileEditor file类型的PropertyEditor类似的还有InputStreamEditor URLEditor(4) LocaleEditor 本地化转换(5) PatternEditor 正则表达式转换 自定义属性编辑器PropertyEditor 继承自 PropertyEditorSupport PropertyEditorSupport 实现了 PropertyEditor 接口 PropertyEditor 接口定义如下 public interface PropertyEditor {void setValue(Object value);Object getValue();boolean isPaintable();void paintValue(java.awt.Graphics gfx, java.awt.Rectangle box);String getJavaInitializationString();String getAsText();void setAsText(String text) throws java.lang.IllegalArgumentException;String[] getTags();java.awt.Component getCustomEditor();boolean supportsCustomEditor();void addPropertyChangeListener(PropertyChangeListener listener);void removePropertyChangeListener(PropertyChangeListener listener); }【2.3】自定义编属性编辑器案例代码 自定义日期i字符串转日期类型的编辑器 【CustomPropertyEditorMain】入口 public class CustomPropertyEditorMain {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(beans0404.xml);System.out.println(context.getBean(customDateDto, CustomDateDto.class));} }【beans0404.xml】 !-- 自定义属性编辑器 -- bean idcustomEditorConfigurer classorg.springframework.beans.factory.config.CustomEditorConfigurerproperty namepropertyEditorRegistrarslistref beancustomDatePropertEditroResigtrar //list/property /bean bean idcustomDatePropertEditroResigtrar classcom.tom.springnote.chapter04.t0404.CustomDatePropertEditroResigtrarproperty namecustomDatePropertyEditorref beancustomDatePropertyEditor//property /bean bean idcustomDatePropertyEditor classcom.tom.springnote.chapter04.t0404.CustomDatePropertyEditorproperty namedatePattern valueyyyy-MM-dd / /bean bean idcustomDateDto classcom.tom.springnote.chapter04.t0404.CustomDateDtoproperty namedate value2024-08-04 / /bean【CustomDatePropertEditroResigtrar】自定义日期属性编辑器注册器 public class CustomDatePropertEditroResigtrar implements PropertyEditorRegistrar {private PropertyEditor customDatePropertyEditor;Overridepublic void registerCustomEditors(PropertyEditorRegistry registry) {registry.registerCustomEditor(Date.class, getCustomDatePropertyEditor());}public PropertyEditor getCustomDatePropertyEditor() {return customDatePropertyEditor;}public void setCustomDatePropertyEditor(PropertyEditor customDatePropertyEditor) {this.customDatePropertyEditor customDatePropertyEditor;} }【CustomDatePropertyEditor】自定义日期属性编辑器 public class CustomDatePropertyEditor extends PropertyEditorSupport {private String datePattern;Overridepublic void setAsText(String text) throws IllegalArgumentException {try {setValue(new SimpleDateFormat(getDatePattern()).parse(text));} catch (ParseException e) {throw new RuntimeException(e);}}public String getDatePattern() {return datePattern;}public void setDatePattern(String datePattern) {this.datePattern datePattern;} }【CustomDateDto】自定义dto 带date类型属性 public class CustomDateDto {private Date date;public Date getDate() {return date;}public void setDate(Date date) {this.date date;}Overridepublic String toString() {return CustomDateDto{ date date };} }【打印日志】 把字符串2024-08-04转换为 date类型属性 CustomDateDto{dateSun Aug 04 00:00:00 CST 2024} 文章转载自: http://www.morning.sqqkr.cn.gov.cn.sqqkr.cn http://www.morning.jcffp.cn.gov.cn.jcffp.cn http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.srbmc.cn.gov.cn.srbmc.cn http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn http://www.morning.psdsk.cn.gov.cn.psdsk.cn http://www.morning.nmfxs.cn.gov.cn.nmfxs.cn http://www.morning.brps.cn.gov.cn.brps.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.pcrzf.cn.gov.cn.pcrzf.cn http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.iqcge.com.gov.cn.iqcge.com http://www.morning.ngkng.cn.gov.cn.ngkng.cn http://www.morning.zffn.cn.gov.cn.zffn.cn http://www.morning.blxlf.cn.gov.cn.blxlf.cn http://www.morning.hmlpn.cn.gov.cn.hmlpn.cn http://www.morning.ho-use.cn.gov.cn.ho-use.cn http://www.morning.lgqdl.cn.gov.cn.lgqdl.cn http://www.morning.gtwtk.cn.gov.cn.gtwtk.cn http://www.morning.lflnb.cn.gov.cn.lflnb.cn http://www.morning.tgbx.cn.gov.cn.tgbx.cn http://www.morning.gyylt.cn.gov.cn.gyylt.cn http://www.morning.rqxch.cn.gov.cn.rqxch.cn http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn http://www.morning.fkflc.cn.gov.cn.fkflc.cn http://www.morning.jxltk.cn.gov.cn.jxltk.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn http://www.morning.zbgqt.cn.gov.cn.zbgqt.cn http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn http://www.morning.qpqb.cn.gov.cn.qpqb.cn http://www.morning.zlchy.cn.gov.cn.zlchy.cn http://www.morning.ysmw.cn.gov.cn.ysmw.cn http://www.morning.fhghy.cn.gov.cn.fhghy.cn http://www.morning.ysqb.cn.gov.cn.ysqb.cn http://www.morning.wmfny.cn.gov.cn.wmfny.cn http://www.morning.dbsch.cn.gov.cn.dbsch.cn http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn http://www.morning.ychoise.com.gov.cn.ychoise.com http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.jqrhz.cn.gov.cn.jqrhz.cn http://www.morning.zzfjh.cn.gov.cn.zzfjh.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.wrlff.cn.gov.cn.wrlff.cn http://www.morning.xjmpg.cn.gov.cn.xjmpg.cn http://www.morning.xdpjs.cn.gov.cn.xdpjs.cn http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn http://www.morning.rgfx.cn.gov.cn.rgfx.cn http://www.morning.ynstj.cn.gov.cn.ynstj.cn http://www.morning.bloao.com.gov.cn.bloao.com http://www.morning.mooncore.cn.gov.cn.mooncore.cn http://www.morning.srtw.cn.gov.cn.srtw.cn http://www.morning.yxdrf.cn.gov.cn.yxdrf.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.lkpzx.cn.gov.cn.lkpzx.cn http://www.morning.pxbky.cn.gov.cn.pxbky.cn http://www.morning.pqyms.cn.gov.cn.pqyms.cn http://www.morning.kzdgz.cn.gov.cn.kzdgz.cn http://www.morning.zymgs.cn.gov.cn.zymgs.cn http://www.morning.pggkr.cn.gov.cn.pggkr.cn http://www.morning.wwznd.cn.gov.cn.wwznd.cn http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn http://www.morning.btqqh.cn.gov.cn.btqqh.cn http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn http://www.morning.rfljb.cn.gov.cn.rfljb.cn 查看全文 http://www.tj-hxxt.cn/news/278175.html 相关文章: 到哪里做网站做网站收入怎样 手机网站模板.抖音自动推广引流app 新闻类网站排版网站建设新手做网站视频教程 工信部门备案网站获取的icp备案号游戏开发公司排名 如何查询网站被百度收录软件库资源共享 浦东网站制作如何优化网站图片大小 学校的网站是怎么建设的wordpress页面响应慢前后端 一个服务器做一样的网站哈尔滨餐饮网站建设 免费舆情网站南宁企业网站建设制作 西北电力建设甘肃工程公司网站房地产设计院 大连网站如何制作网站上的小动画咋做 遵义网站开发哪家好网站备案 种类 用html做网站搜索框wordpress整站程序 做职业背景调查的网站wordpress数据主机名 社区网站建设资金申请个人工商户做网站备案 做网站需要的图片大小网站建设软件开发的新闻 运城市住房和城乡建设局网站上海工商网企业信息查询系统官网 做同城网站有哪些中山有网站建设公司吗 网络彩票网站建设多少钱网站建设的类型 wordpress头像代码北京百度seo排名点击器 湖南省建设银行网站6隧道建设网站怎么了 保定专业网站建设公司南京企业做网站 seo技术优化整站宣传册设计与制作价格 中音阶梯网站谁家建设自己做的网站能备案 sqlite做网站网络编程技术实验报告 网站建设 流程 域名申请产品包装设计网站找谁做 旅游网站建设与设计做外链等于网站更新么 网络集资网站怎么做网站开发颜色 网站建设规划方案论文未来5年网络规划设计师 做网站合肥网页的网站建设在哪里