Eap使用(4) 架构设计

 

eap 是主要做面向后台管理的程序

技术栈 包括

  • spring 4
  • spring mvc 4
  • spring security 4
  • spring data redis
  • spring message
  • (spring session) 1.3.1
  • (cas sso) 3.5.2
  • jpa+hibernate 5.2.12
  • servlet 3.0
  • jdk8
  • require js + bootstrap + ztree + treetable
  • Thymeleaf

技能点包括

  • maven的熟练使用
  • 面向对象 面向接口 面向bean 编程
  • IDEA 的熟练使用
  • JRebel 的安装与使用
  • Tomcat 内嵌使用
  • java config + xml config
  • 序列化 session 共享
  • redis cluster 集群 搭建+使用
  • job crud
  • lambda + stream + optional
  • WebApplicationInitializer
  • spring 4 常见的注解
  • servlet 3.1 规范
  • spel表达式引擎
  • ognl

通过一个流程图来说明eap 的架构
一个普通的http请求顺序是这样的:

浏览器发起请求(a标签/地址栏/location.href ... )
 ↓
web服务器(tomcat(prod)/jetty(dev))监听端口将请求封装成request 和response 对象
 ↓
根据二级路径找到对应的context (eg:/vac /callcenter eap采用的根路径部署)
 ↓
根据是否启用session共享 启用springSessionRepositoryFilter过滤器(包装session存储在redis)
 ↓
org.springframework.web.filter.CharacterEncodingFilter(字符集转换)
 ↓
com.hfvast.platform.view.EditFilter(是否是进入开发模式页面 getParamter("dev")!=null)
 ↓
springSecurityFilterChain进行角色权限的判断拦截 过滤器链(目前拦截/* 后期会修改放过静态资源)
 ↓
org.springframework.web.servlet.DispatcherServlet进行调度请求 把请求交给对应的controller 的对应的requestMapping 方法中
 ↓
自己写的service
 ↓
框架的dao操作
 ↓
返回一个view 或者 纯数据
 ↓
由spring 根据返回的view 和数据 最终返回的数据写入response流中,并设置对应的 content-type 原路返回到浏览器

eap 升级之后 部分启用了 java config 所以要快速掌握 eap 并不能靠之前的 挖 web.xml就可以的,配置 比较分散

  • spring 1 : xml config <bean id = "" class="com.hfavst"/>
  • spring 3 : @interface @Compant , @Controller
  • spring 4 : java config @Bean , @Configuration
  • spring 5 : lambda config context.registerBean(MyService.class, () -> new MyService());

spring 5 正式版已经发布 前路且艰