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

网站制作步骤流程图网站开发的项目实战

网站制作步骤流程图,网站开发的项目实战,拉新平台哪个好佣金高,多个网站优化怎么做#x1f40c;个人主页#xff1a; #x1f40c; 叶落闲庭 #x1f4a8;我的专栏#xff1a;#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也#xff0c;而不可夺坚#xff1b;丹可磨也#xff0c;而不可夺赤。 容器实现 一、BeanFactory实现的特点1.1 Be… 个人主页 叶落闲庭 我的专栏 c语言 数据结构 javaEE 操作系统 Redis 石可破也而不可夺坚丹可磨也而不可夺赤。 容器实现 一、BeanFactory实现的特点1.1 BeanFactory实现1.2 BeanFactory无法解析Configuration和Bean 一、BeanFactory实现的特点 1.1 BeanFactory实现 BeanFactory是通过一个DefaultListableBeanFactory来实现的首先要创建一个DefaultListableBeanFactory的实例对象创建好后就作为一个核心的spring容器此时容器中还没有bean这时需要创建bean的定义主要是描述bean的特征包括类型scope单例、多例,是否有初始化方法和销毁方法根据这些描述信息就能知道bean有哪些特点并根据这些描述信息将bean创建出来bean的定义通过BeanDefinitionBuilder.genericBeanDefinition(Config.class)创建参数Config.class表示将Config这个类交给BeanFactory管理然后通过调用getBeanDefinition()将bean定义对象创建好即 AbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition(com.dobbopro.TestBeanFactory.Config.class).setScope(singleton).getBeanDefinition();接下来通过beanFactory.registerBeanDefinition(config,beanDefinition);将这个定义好的bean进行注册注册好的bean的名字就是第一个参数configbean创建好后可以进行验证通过beanFactory.getBeanDefinitionNames()就可以得到bean的名字 代码实现 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** Author YJ* Date 2023/10/1 20:36* Description:BeanFactory实现*/ public class TestBeanFactory {public static void main(String[] args) {DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory();//定义beanDefinitionAbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition(com.dobbopro.TestBeanFactory.Config.class).setScope(singleton).getBeanDefinition();//注册beanDefinitionbeanFactory.registerBeanDefinition(config,beanDefinition);for (String beanDefinitionName : beanFactory.getBeanDefinitionNames()) {System.out.println(beanDefinitionName); }}Configurationstatic class Config{Beanpublic Bean1 bean1() {return new Bean1();}Beanpublic Bean2 bean2() {return new Bean2();}}static class Bean1{private static final Logger log LoggerFactory.getLogger(Bean1.class);public Bean1() {log.debug(构造Bean1());}Autowiredprivate Bean2 bean2;public Bean2 getBean2() {return bean2;}}static class Bean2{private static final Logger log LoggerFactory.getLogger(Bean2.class);public Bean2() {log.debug(构造Bean2());}} }验证结果 1.2 BeanFactory无法解析Configuration和Bean 经过上述代码可以看出spring容器中只有一个config的bean,加了Bean注解的Bean1和Bean2并没添加到容器中说明BeanFactory无法解析Configuration和BeanConfiguration和Bean的解析是由其他的类来实现的AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);这个方法是给BeanFactory添加一些常用的后处理器有了后处理器就可以解析Configuration和Bean这些注解了具备了BeanFactory的一些扩展功能调用这个方法后就可以将带有注解Bean对应的bean对象添加到BeanFactory注意此时运行代码还不会将带有Bean注解的bean1和bean2补充到BeanFactory中这时只是添加到了BeanFactory还没有运行后处理器相当于工厂中有bean这个东西但是它们还没有工作 public static void main(String[] args) {DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory();//定义beanDefinitionAbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition(com.dobbopro.TestBeanFactory.Config.class).setScope(singleton).getBeanDefinition();//注册beanDefinitionbeanFactory.registerBeanDefinition(config,beanDefinition);//给BeanFactory添加后处理器AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);for (String beanDefinitionName : beanFactory.getBeanDefinitionNames()) {System.out.println(beanDefinitionName);}}要想让bean1和bean2运行起来需要先通过beanFactory.getBeansOfType(BeanFactoryPostProcessor.class)拿到Bean工厂中的所有后处理器得到是一个Map集合这个Map集合的key就是后处理器的名字value就是它们的值通过foeEach拿到每一个后处理器最后进行打印 public static void main(String[] args) {DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory();//定义beanDefinitionAbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition(com.dobbopro.TestBeanFactory.Config.class).setScope(singleton).getBeanDefinition();//注册beanDefinitionbeanFactory.registerBeanDefinition(config,beanDefinition);//给BeanFactory添加后处理器AnnotationConfigUtils.registerAnnotationConfigProcessors(beanFactory);beanFactory.getBeansOfType(BeanFactoryPostProcessor.class).values().stream().forEach(beanFactoryPostProcessor - {beanFactoryPostProcessor.postProcessBeanFactory(beanFactory);});for (String beanDefinitionName : beanFactory.getBeanDefinitionNames()) {System.out.println(beanDefinitionName);}}
http://www.w-s-a.com/news/685513/

相关文章:

  • 网络公司如何建网站网站的建设需要多少钱
  • 代刷网站推广快速泉州网页定制
  • 网站优秀网站地址做宣传册的公司
  • 苏州高端网站建设咨询wordpress云图插件
  • 河北省建设厅网站重新安装优秀中文网页设计
  • 如何在腾讯云做网站开源站群cms
  • 公司网站建设的意义网易做网站
  • 网络营销案例分析与实践搜外seo
  • 手机建网站挣钱吗wordpress面包屑
  • 淘客做网站怎么备案网站开发工具的是什么
  • 提供大良网站建设郑州网站建设网站开发
  • 邢台做wap网站价格wordpress评论滑动
  • 绝味鸭脖网站建设规划书江苏建设人才网 官网
  • 网站源码授权破解centos wordpress 整站
  • 建设一个私人视频网站wordpress js
  • 手机企业网站制作流程3d建模自学
  • 网站优化方案和实施wordpress的归档
  • 建设事业单位网站多少钱集艾设计公司官网
  • 网站建设与管理方案书图片的制作方法
  • 中文建网站美发网站模板带手机版
  • 免费聊天不充值软件windows优化大师下载安装
  • 网站优化的关键词自己怎么做外贸网站空间
  • 现在建设的网站有什么劣势温州互联网公司
  • 重庆自助企业建站模板淘宝关键词top排行榜
  • 平邑网站制作买高端品牌网站
  • 深圳建网站三千网站安全代维
  • 西宁市精神文明建设网站装饰设计甲级资质
  • 做教育行业营销类型的网站徐州做网站多少钱
  • 临沂品牌网站制作企业网站建设搜集资料
  • wordpress注册验证码手机网站优化