架构探险总结

java web的认识:
首先是对servlet的认识,他是整个web应用的核心,servlet封装了http,使得我们可以通过servlet的一些方法去和http进行交互.同样的,struts2框架也对servlet进行了封装
包括过滤器等,主要是通过集成servlet的过滤器来实现.这样一层一层的封装和使用极大的方便了web的开发.


smart架构的学习:
(第一章)
smart框架一开始没有使用流行的ssi或者ssh框架,第一个例子就直接通过继承Httpservlet来作为web的入口,只需要加上声明@WebServlet("/hello"),
这个注解是基于servlet3.0的, 这样通过httpservletdispather就可以找到后台的路径.(结尾讲解了ij ide的git简单操作)
(第二章)
设计简单客户系统,分为三步:1,设计用例,2,设计表结构,3,设计界面原型,4,设计URL.
使用mvc分层模式,创建数据库表,编写model对象层,编写控制层,编写服务层,编写测试用例junit,编写视图层.提供日志slf4j的实现Log4j,配置日志文log4j.properties
添加mysql连接,lang3和collection4工具提供字符串和集合的操作,编写配置文件获取工具(loadProps方法),提供转型操作工具类,封装数据库的jdbc操作,使用Dbutils的类库.
Dbutils提供的QueryRunner对象可以面向实体进行查询.eg:BeanListHandler,为了确保一个线程中只有一个Connection,我们可以使用ThreadLocal来存放本地线程变量.
封装完Dbutils后考虑池化数据库连接,连接池的原理就是预先创建和重复使用连接,这里使用了Apache 的dbcp2连接池,(BasicDataSource.getConnection),要保证此连接是(声明为)静态的.
(第三章)
搭建轻量级java web框架,自定义contrller层来封装之前的servlet类.准备工作,使用javax.servlet,使用jsp-api,使用jstl表达式,使用日志slf4j的日志实现log4j,
使用mysql连接,序列化和反序列化工具使用jackson,使用常用工具,Commons的字符串操作和集合的操作.对数据库的操作使用Dbutils,连接池用到了dbcp2.
然后设置数据库连接的配置文件,使用获取配置文件的工具类ProsUtil.在配置文件中会设置一些路径,如包的路径,视图(jsp)路径,错误(页面)路径等.
紧接着开发一个类加载器,用来加载基础包下的所有类.接着声明四个注解,分别为Controller,Service,Action,Inject,通过判断类是否标记了注解来区分,将Controller类
和Service类当做是Bean对象.最后封装反射api对Bean进行实例化.实例化后进行保存,这样就能通过匹配返回之前实例化后的对象了.加载ioc框架,通过反射之前保存的类,
如果里面的属性有inject注解,则取出来对他们进行实例化.之后就开始加载Controller,获取到action注解的请求方法和路径,然后把这些类和方法和请求返回进行关联,
这样在请求转发器中就可以对标记了的类进行指定的方法调用.
(第四章)
使框架具有aop特性,用到了代理技术.了解了静态代理,jdk动态代理和cglib动态代理技术,之后讲解了spring的aop,spring提供了aop的接口,可以在xml中配置,由于要配置许多
的切面,后来将spring和aspectj进行了集成,使用aspectj的表达式可以很方便的对类和方法进行拦截,也可以对注解进行拦截,同样的使用注解的形式更加灵活的使用代理技术,
对于jdk1.4的版本也提供了xml的配置.
(第五章)
对框架进行优化,优化action参数,实现文件上传功能,与servlet api解耦,使用shrio安全框架,实现对web服务的封装.


你可能感兴趣的:(架构)