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

南昌网站seo外包服务会计培训机构

南昌网站seo外包服务,会计培训机构,wordpress 热门文章,北京百度seo排名公司文章目录 一、目标#xff1a;创建简单的Bean容器二、设计#xff1a;创建简单的Bean容器三、实现#xff1a;创建简单的Bean容器3.0 引入依赖3.1 工程结构3.2 创建简单Bean容器类图3.3 Bean定义3.4 Bean工厂 四、测试#xff1a;创建简单的Bean容器4.1 用户Bean对象4.2 单… 文章目录 一、目标创建简单的Bean容器二、设计创建简单的Bean容器三、实现创建简单的Bean容器3.0 引入依赖3.1 工程结构3.2 创建简单Bean容器类图3.3 Bean定义3.4 Bean工厂 四、测试创建简单的Bean容器4.1 用户Bean对象4.2 单元测试 五、总结创建简单的Bean容器 一、目标创建简单的Bean容器 Spring Bean 容器是什么 Spring 包含并管理应用对象的配置和生命周期在这个意义上它是一种用于承载对象的容器。 你可以配置你的每个 Bean 对象是如何被创建的。这些 Bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联构建和使用的。 如果一个 Bean 对象交给 Spring 容器管理那么这个 Bean 对象就应该以类似零件的方式被拆解后存放到 Bean 的定义中。 这样相当于一种把对象解耦的操作可以由 Spring 更加容易的管理就像处理循环依赖等操作。 当一个 Bean 对象被定义存放以后再由 Spring 统一进行装配这个过程包括Bean 的初始化、属性填充等。 最终我们就可以完整的使用一个 Bean 实例化后的对象了。 目标定义一个简单的 Spring 容器用于定义、存放和获取 Bean 对象。 二、设计创建简单的Bean容器 简单的 Spring Bean 容器如何实现 凡是可以存放数据的具体数据结构实现都可以称之为容器。 例如ArrayList、LinkedList、HashSet 等。但在 Spring Bean 容器的场景下我们需要一种可以用于存放和名称索引式的数据结构HashMap 是最合适的。 HashMap是一种基于扰动函数、负载因子、红黑树转换等技术内容形成的拉链寻址的数据结构。 它能让数据更加散列的分布在哈希桶以及碰撞时形成的链表和红黑树上。它的数据结构会尽可能最大限度的让整个数据读取的复杂度在 O(1)~O(Logn)~O(n) 之间。当日在极端情况下也会有 O(n) 链表查找数据较多的情况不过我们经过10万数据的扰动函数再寻址验证测试数据会均匀的散列在各个哈希桶索引上。所以 HashMap 非常适合用在 Spring Bean 的容器实现上。 一个简单的 Spring Bean 容器实现还需 Bean 的定义、注册、获取三个基本步骤。 定义BeanDefinition它会包括 singleton、prototype、BeanClassName 等。目前初步实现一个 Object 类型用于存放对象。注册这个过程就相当于我们把数据存放到 HashMap 中只不过现在 HashMap 存放的是定义了的 Bean 对象信息。获取最后就是获取对象Bean 的名字就是 keySpring 容器初始化好 Bean 以后就可以直接获取了。 三、实现创建简单的Bean容器 3.0 引入依赖 pom.xml dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope/dependency /dependencies3.1 工程结构 spring-step-01 |-src|-main| |-java| |-com.lino.springframework| |-BeanDefinition.java| |-BeanFactory.java|-test|-java|-com.lino.springframework.test|-bean| |-UserService.java|-ApiTest.java3.2 创建简单Bean容器类图 Spring Bean 容器的整个实现内容非常简单也仅仅是包括了一个简单的 BeanFactory 和 BeanDefinition。 这里的类名称是与 Spring 源码中一致只不过现在的类实现会相对来说更简化一些在后续的实现再继续添加内容。BeanFactory用于定义 Bean 实例化信息现在的实现是一个 Object 存放对象。BeanDefinition代表了 Bean 对象的工厂可以存放 Bean 定义到 Map 中以及获取。 3.3 Bean定义 BeanDefinition.java package com.lino.springframework;/*** description: Bean 对象信息定义*/ public class BeanDefinition {/*** bean对象*/private Object bean;public BeanDefinition(Object bean) {this.bean bean;}public Object getBean() {return bean;} }目前的 Bean 定义中只有一个 Object 用于存放 Bean 对象。在后续的实现中会逐步完善 BeanDefinition 相关属性的填充。 例如SCOPE_SINGLETON、SCOPE_PROTOTYPE、ROLE_APPLICATION、ROLE_SUPPORT、ROLE_INFRASTRUCTURE 以及 Bean Class 信息。 3.4 Bean工厂 BeanFactory.java package com.lino.springframework;import java.util.Map; import java.util.concurrent.ConcurrentHashMap;/*** description: 简单的 Bean 工厂*/ public class BeanFactory {/*** bean对象Map*/private MapString, BeanDefinition beanDefinitionMap new ConcurrentHashMap();public Object getBean(String name) {return beanDefinitionMap.get(name).getBean();}public void registerBeanDefinition(String name, BeanDefinition beanDefinition) {beanDefinitionMap.put(name, beanDefinition);} }在 Bean 工厂的实现中包括了 Bean 的注册这里注册的是 Bean 的定义信息。同时在这个类中还包括了获取 Bean 的操作。目前的 BeanFactory 仍然是简化的实现但这种简化的实现内容也是整个 Spring 容器中关于 Bean 使用的最终体现结果。 只不过实现过程只展示出基本的核心原理。 四、测试创建简单的Bean容器 4.1 用户Bean对象 UserService.java package com.lino.springframework.test.bean;/*** description: 模拟用户 Bean 对象*/ public class UserService {/*** 查询用户信息*/public void queryUserInfo() {System.out.println(查询用户信息);} }定义一个 UserService 对象。 4.2 单元测试 ApiTest.java package com.lino.springframework.test;import com.lino.springframework.BeanDefinition; import com.lino.springframework.BeanFactory; import com.lino.springframework.test.bean.UserService; import org.junit.Test;/*** description: 测试类*/ public class ApiTest {Testpublic void test_BeanFactory() {// 1.初始化 BeanFactoryBeanFactory beanFactory new BeanFactory();// 2.注入beanBeanDefinition beanDefinition new BeanDefinition(new UserService());beanFactory.registerBeanDefinition(userService, beanDefinition);// 3.获取beanUserService userService (UserService) beanFactory.getBean(userService);userService.queryUserInfo();} }在单元测试中主要包括 初始化 Bean 工厂、注册 Bean、获取 Bean 三个步骤。在 Bean 的注册中这里是直接把 UserService 实例化后作为入参传递给 BeanDefinition 的在后续的陆续实现中这部分会放入 Bean 工厂中实现。 测试结果 查询用户信息通过测试结果看是正常通过的。 五、总结创建简单的Bean容器 整篇关于 Spring Bean 容器的一个雏形就已经实现完成了。相对于一个知识的学习来说写代码只是最后的步骤往往整个思路、设计、方案才更重要只要你知道了因为什么所以什么才能让你有一个真正的理解。
http://www.hkea.cn/news/14284131/

相关文章:

  • 网站开发宝典免费的公司起名网
  • 网站建设页面带声音可以设计图案的软件
  • 套用模板网站0基础wordpress
  • 网站开发有哪些参考文献怎么取消网站备案
  • 南京学网站建设中英文网站asp怎么做
  • 做网站麻烦么自己网站怎么推广
  • 湛江网站建设公司哪个好商城公众号开发
  • 专业做视频的网站珠海网站建设品牌策划
  • 大学生做网上英语翻译兼职网站龙岩网站排名
  • 做网站用asp和html培训网站有哪些
  • 中文网站什么意思长沙企业模板建站
  • 电子类网站建设需要多少钱网站地址ip域名查询
  • 大理网站建设摄影师作品网站有哪些
  • 网站文字配色山西建筑劳务网站
  • 网站建设江西seo排名点击软件
  • 可以做砍价活动的网站企业网站设计原则
  • 注册域名哪个网站好现在注册一个公司需要多少费用
  • 网站前端做报名框网站自己怎么做优化
  • 绵阳top唯艺网站建设安康市代驾公司
  • 做一个网站需要多少人金华网站建设设计
  • 网站搭建软件d网站免费制作
  • 怀化市住房和城乡建设局网站网站维护公告模板
  • 网站建设管理与维护ppt淘宝网页版官网入口
  • 企业网站建设方案模板做衣服招临工在什么网站找
  • 潍坊建网站的公众号开通
  • 1免费网站建站东莞住房建设网站的网
  • 织梦如何做网站留言功能福州网站建设方案开发
  • 校园门户网站系统建设方案广告设计公司服务不到位
  • 重庆网站建设网站建设物联网平台网站
  • 音乐网站可以用什么语言做大学网页制作学什么