Project原生JavaWeb工程 01 搭建,组件制作,一些技巧
Posted mindzone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Project原生JavaWeb工程 01 搭建,组件制作,一些技巧相关的知识,希望对你有一定的参考价值。
一、环境准备:
操作系统:Windows7 或者 Windows10
IDE集成环境:IDEA 2018版本或者更高
数据库:mysql 5版本或者更高
服务器:Tomcat 8版本或者更高
二、工程目录划分:
src主要目录:
pojo 实体类,存放一些数据模型类,又称为domain,entity,model等等
dao 数据访问层,存放和数据库访问相关的访问类
service 业务逻辑层,存放业务实际处理相关
serverModel 消息模型层,例如JSON,翻页等等,消息数据的模型层
servlet 视图处理层,存放转发和数据携带相关的servlet规范类
filter 过滤器,存放一些拦截过滤的处理
util 工具包目录,提高开发效率的工具类
web主要目录
static 静态文件目录 WEB-INF 工程信息目录,所有jsp文件都会放在这里面,访问安全限制
WEB-INF/lib 存放jar依赖组件
其他辅助目录:
test 测试目录,对上面这些主要处理层进行单元测试
config 配置文件目录,存放各种配置
三、主要开发组件:
1、数据访问层:
JdbcUtil 单连接对象获取,CRUD的操作封装,
TransactionManager 事务管理器,保证业务层的业务逻辑安全
各种数据源【连接池】的获取工具类
C3p0Util
HikariUtil
DruidUtil
- JdbcForTxUtil,
基本上不会单链接,就重新写了一遍,
就是删掉了原生配置加载和链接对象获取,不再关闭连接对象,事务来处理的
https://gitee.com/daizhizhou/temp_repo/blob/master/ToolBox/JavaWeb/Util%20%E5%B0%81%E8%A3%85%E7%9A%84%E5%B7%A5%E5%85%B7%E7%BB%84%E4%BB%B6/JdbcForTxUtil.java
- TransactionManager
也可以简写TxManger
https://gitee.com/daizhizhou/temp_repo/blob/master/ToolBox/JavaWeb/Util%20%E5%B0%81%E8%A3%85%E7%9A%84%E5%B7%A5%E5%85%B7%E7%BB%84%E4%BB%B6/TransactionManager.java
- 数据源配置类,这个就不详细介绍了,各种连接池配置大同小异
2、业务逻辑层:
ServiceTransactionProxy
业务层事务代理增强,用于对整个业务层的业务逻辑动态的覆盖事务
也可以简写称ServiceTxProxy
- ServiceTxProxy
开放了数据源对象的设置,灵活性更好
https://gitee.com/daizhizhou/temp_repo/blob/master/ToolBox/JavaWeb/Util%20%E5%B0%81%E8%A3%85%E7%9A%84%E5%B7%A5%E5%85%B7%E7%BB%84%E4%BB%B6/ServiceTxProxy.java
3、业务模型层:
Page<Entity> 翻页模型类,用于分页渲染的数据
JsonResult 前端消息接收的封装对象,也可以是其他数据
- Page<Entity>
https://gitee.com/daizhizhou/temp_repo/blob/master/JavaWeb/Paging%20%E5%88%86%E9%A1%B5%E5%AE%9E%E7%8E%B0/Paging/src/cn/dai/service/model/Page.java
- JsonResult
https://blog.csdn.net/qq_36514705/article/details/81208973
4、视图渲染层:
BaseServlet 统一处理请求分发,即SpringMVC中央控制器的雏形
- BaseServlet
https://gitee.com/daizhizhou/temp_repo/blob/master/ToolBox/JavaWeb/Servlet%20%E8%AF%B7%E6%B1%82%E8%BD%AC%E5%8F%91%E5%A4%84%E7%90%86/BaseServlet.java
一些开发上的IDEA技巧问题:
1、关于对一些总工程上的目录划分:
我一直以为只有构建工具才会这样规划的目录,原来是IDEA自己就可以这样的
- SourcesRoot
源文件根目录,也就是指类路径,存放所有Java源码的地方,其内部的包必须遵守Java命名规范
- TestSourcesRoot
测试根目录,用来存放测试代码的地方,在生成实际工程文件时,这个测试目录内的代码不会被添加进去
- ResourcesRoot
资源根目录,用以存放各种各样的配置文件
- Test ResourcesRoot
测试资源目录,用以存放测试需要的配置文件,可以把单元测试组件和测试用的连接配置单独放在这里面
- Excluded
被排除目录,放在这里面的资源在工程生成时不会被添加进去
2、IDEA数据库访问:
通过一些驱动连接数据库,本质上来说就是Jdbc只不过有界面UI,开发体验更好些
连接获取:注意新老版本的驱动和url配置
对于一个List集合如果需要写遍历,可以直接 集合指针引用FOR
关于使用事务执行Jbdc的概述:
数据源 - 事务管理器类 - JdbcUtil或者其他的SQL操作工具类
数据源:
- 连接参数的配置文件
- 对应的各种连接池组件【C3p0,Druid,Hikari,... ...】
hikari在连接参数上的问题得不到解决,所以放弃了,
事务调用事发生了找不到jdbc驱动的问题,可是hikari链接不允许设置驱动
事务管理器:
- 获取数据源,提供连接
- 只要能提供数据源,就应该和数据源解耦,注入谁的数据源都应该可以
- 但是我找不到合适的注入点位置,所以和数据源一样,采用了配置文件注入
- dataSource.propertis,利用反射动态注入
Jdbc的工具操作:
- 只要注入事务提供的数据源,才能够被动态事务代理
- 或者不需要事务,直接执行
以上是关于Project原生JavaWeb工程 01 搭建,组件制作,一些技巧的主要内容,如果未能解决你的问题,请参考以下文章
Project原生JavaWeb工程 02 登陆业务的流程(第一阶段样例)
java web工程引用java project(以二维码和加密为例)