zoukankan      html  css  js  c++  java
  • 手写IOC-SPRINGPMVC-CONNPOOL

    (一)  手写IOC思路

      1.扫包,将所有class文件加载到内存,判断类上是否加了ExtService注解,有就添加入map中 ,  map<String ,Object>;  key是类名,value是对象
      2.遍历map,获取每个对象的所有属性,判断属性上是否有ExtAutowire,有就以属性名称为key从map中得到对应的value,通过反射给属性赋值

       项目结构:

          

    (二) 手写springmvc思路

    1.创建一个前端控制器(Servlet)
    2.在init方法中,将扫包范围的有ExtController注解的类,注入到springmvc容器里面,存放在Map集合中 key为默认类名小写,value 对象
    3.handlerMapping的组装,遍历springmvc容器,将url映射和方法进行关联,关联可以用两个map表示,一个是url和controller对象对应,一个是url和方法对应
    4.重写Get或者是Post方法,获取请求的url, 从handlerMapping找到对应方法执行,通过response对象返回响应

    项目结构:

     

     

    (二) 手写数据库连接池思路

    1.准备两个集合,一个是空闲连接集合,一个是活动连接集合

    2.初始化连接池,创建initialSize个连接放入空闲连接集合中

    3.获取连接:在当前活动连接小于MaxActive时,如果空闲连接集合有连接,从中取出一个放入活动连接集合中(引用),并返回取出的连接

    4.释放连接:当空闲连接集合没有满的情况下,将连接放入空闲连接集合中(引用),如果空闲连接集合满了,就将连接关闭,活动连接集合中删除该引用

       项目结构:

      

      github地址:https://github.com/jake1263/IOC-SPRINGMVC-CONNPOOL.git

     

     

  • 相关阅读:
    JavaScript 学习笔记 事件二
    auto_ptr
    POJ2299 UltraQuickSort(逆序对个数)
    2016年11月2日22:28:14
    将sql server中的数据倒入Excel(c#)
    线段树成段更新裸题POJ3468
    线段树成断更新裸题hdu1698 Just a Hook
    POJ2828 思维难度较好的一道线段树
    < 弱牛刷贪心给JerryDung&qiuwei大神Orz>最大乘积
    NOIP 2008 传纸条题解[双线程DP]
  • 原文地址:https://www.cnblogs.com/moris5013/p/11076214.html
Copyright © 2011-2022 走看看