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(以二维码和加密为例)

SpringBoot+MyBatis搭建JavaWeb工程

Intellijidea建javaWeb以及Servlet简单实现

IDEA 使用Maven搭建一个JavaWeb工程

springcloud01- SpringCloud快速搭建