窗外施工甚吵,框架知多少

checkcheck
  窗外一大早就传来嘈杂的施工声,扰人清梦。
  来此半年,见证了挖掘机从吭哧吭哧的挖地基,到整栋大厦即将落成。看着一砖一瓦填入围着竹子的水泥架构中。框架,一听就给人沉重的束缚感。规定好了,只能做这做那,你跑出这个圈子就会被妖怪吃掉。但是有了框架,房子的条理和规范就定型了,施工师傅只管带上水泥砖头埋头干活就行了。
  (此处该怎么衔接呢,僵硬)
  在javaweb开发中的曾红遍大江南北的JSP+servlet+javabean的架构,随着web应用的发展和复杂度提升,这个红极一时的框架也就过气了。为了让公司更好的盈利(为了更好的偷懒),于是当红炸子鸡SSM以及SSH出现,这两个天团名字多多少少听起来有灰色那味儿。作为红到发紫的ssm组合,其核心事务所自然是Spring容器,其业务能力强悍,开发成本底,也能整合各种主流框架,此外管理着下属的创作团队以及经纪人团队,Spring通过IOC/DI管理创作团队创建的各类作品(JavaBean),通过AOP管理经济人团队,经纪人统一管理表演前后的工作。此外Spring还拥有自己的明天王明星,SpringMVC,SpringCloud,SpringBoot。其当家明星之一的SpringMVC取代了Servlet成为顶流台柱,其核心业务就是DispacherServlet(前端控制器),前端控制器截获请求,通过HandleMapping控制器处理器来找到对应的handle(业务处理器),业务处理器处理往逻辑业务,向前端控制器返回一个ModleAndView,前端控制器再调用视图解析器对ModleAndView进行解析渲染,再将响应结果返回给前端,简而言之,客户端就像粉丝,有着各种各样的请求(requert),而天王SpringMVC就是根据这些请求和粉丝互动,而Spring事务所已经为各种粉丝请求安排了各种作品(JavaBean),SpringMVC只要把Spring编排好的作品反馈给粉丝即可,以此来完成其盛大的表演。
  Spring事务所虽然厉害,但是关于自己的爱豆还是不够用的,粉丝的群体各种各样,也会喜欢Spring事务所以外的外来爱豆。而这为外来爱豆Mybatis,和Spring自家爱豆SpringData有相似的业务能力,但是前者在业界的认可度更高。Mybatis是持久层的ORM映射框架,经济公司给其配置的业务能力有:连接池管理,事务管理,配置加载,缓存处理。但是纵使Mybatis才华横溢,也有其瓶颈。这个时候你就开始找行业og,发现Hibernate正好可以完成Mybaties无法完成的事情。这个OG是个全自动的ORM框架,可以自动完成从对象操作到SQL语句的转化。那新生代流量小生与OG该如何抉择呢?
开发效率:Hibernate的DAO层开发比Mybatis简单,Mybatis需要维护SQL和结果映射;
数据库移植性:Hibernate的数据库移植性好,Mybatis移植性不好,不同数据库需要写不同的SQL;
缓存机制:Hibernate有强大的缓存机制,而MyBatis本身提供的缓存机制不佳;
SQL调优性:MyBatis方便,而Hibernate调优性差;
此外MyBatisSQL与程序解耦,Hibernate在处理批量更新的效率也不佳。
  总的来说,Hibernate就是智能机器人,全自动工具,天王就是贵。而MyBtis就像男人的梦想–挖掘机,半自动化工具,拿来就用,想挖哪里挖哪里。
谈及Spring强大的创作团队IOC/DI,IOC是由容器帮忙创建及注入依赖对象,IOC不是一种技术而是一种设计思想,由IOC容器控制应用程序,由容器反向反向注入应用程序所需要的外部资源。这么说,我们对这个创作团队还是一知半解,因此我们需要了解另一个软件设计思想依赖倒置原则(Dependency Inversion Principe)。相信各位秋名山车神小时候都玩过的四驱赛车,它是怎么拼成的?首先,需要4个强力轮胎,再来个扛撞的底盘,最后来个狂拽酷炫的车身,就可以开始快乐的“快快快!冲冲冲!”了。这里就形成了一个依赖关系,赛车依赖车身,车身依赖底盘,底盘依赖轮子。这个时候我们需要一个更大更强力的轮胎怎么办呢?那底盘就要变动了,底盘变了,车身也要变了。那我们将整个顺序倒过来,就不会这种尴尬的局面了。从原来的高层建筑依赖底层建筑倒置过来,变成底层建筑依赖高层建筑,高层建筑决定实现什么,底层去实现这样的需求即可,高层不用管底层是怎么去实现的。IOC容器最大的好处是创建实例时不需要了解其中的细节,就像一个工厂,根据配置就可以提供实例给我们。(实现原理:IOC容器先查询依赖,如A-->B--C;那IOC创建组件的顺序就是C-->B-->A)。Spring是如何管理IOC的呢?答案就是使用应用上下文来获取容器对象。注解的两种方式:JPA(java persistence API)/JSR(java standard resolution)注解;依赖注入注解。常见的JPA注解(java持久化API注解)。

  1. Repository 数据访问组件,标注数据访问层组件
  2. Service 业务层组件,标注业务层组件,表示定义一个bean
  3. Controller 标注控制层组件,配合SpringMVC使用
  4. Component 所用受Spring管理组件的通用形式,是一个元注解
    怎么获取Bean对象呢,这就涉及到两个依赖注入注解,Resource获取类对象,Autowired自动装配。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值