数据源及分层开发
文章目录
1.使用Tomcat数据源
问题分析
访问前需要先获取连接
每次操作结束后,要释放资源
频繁的连接导致系统的安全性和稳定性差
解决问题
可以使用数据源和连接池
1.1连接池工作原理
连接池是由容器提供的,用来管理池中连接对象
数据源(DataSource)
javax.sql.DataSource接口负责建立与数据库的连接由Tomcat提供,将连接保存在连接池中
1.2Tomcat配置数据源步骤
1、配置Tomcat的conf/context.xml
<Resource name="jdbc/news"
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="root" password="bdqn"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/kgcnews"/>
name 指定Resource的JNDI名称
Container 指定管理Resource的Manager
type 指定Resource所属的Java类
maxActive 指定连接池中处于活动状态的数据库连接的最大数目
maxIdle 指定连接池中处于空闲状态的数据库连接的最大数目
maxWait 指定连接池中的连接处于空闲的最长时间
2、使用JNDI获取连接对象
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news");
Connection conn = ds.getConnection();
out.println(conn);
2.使用JavaBean传递数据
public void add(int id, int categoryId, String title, String summary, String content, Date createdate) {
//方法体
}
public void add(新闻信息对象) {
//方法体
}
javaBean:
就是一个java类
作用:
封装业务逻辑
封装数据
3.JSP动作标签
jsp:useBean
JSP动作标签
通过动作标签,程序员可以在JSP页面中把页面的显示功能部分封装起来,使整个页面更简洁和易于维护
<jsp:useBean>
装载一个将在JSP页面中使用的JavaBean,发挥Java组件重用的优势
<jsp:useBean id="name" class="package.class" scope="scope" >
name = javaBean的引用名
package.class = javaBean的类
scope = javaBean的范围
jsp:include
<jsp:include>
把指定文件插入正在生成的页面中
<jsp:include page="URL">
URL引入的界面
%@include%
<%@include file="URL"%>
URL引入的界面
<%@include%>与<jsp:include>
<jsp:include>为动态包含,将被包含页面的结果包含进来。先处理,再包含
<%@include%>为静态包含,将被包含页面的内容包含进来。先包含,再处理
4.分层开发
为什么要分层
高内聚:分层的设计可以简化系统设计,让不同的层专注做某一模块的事
低耦合:层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节
扩展性:分层架构可以让我们更容易做横向扩展
如果系统没有分层,当业务规模增加或流量增大时我们只能针对整体系统来做扩展。分层之后可以很方便的把一些模块抽离出来,独立成一个系统。
4.1传统的MVC架构
优点:关注前后端分离
缺点:模型层分层太粗,融合了数据处理、业务处理等所有的功能。核心的复杂业务逻辑都放到模型层,导致模型层很乱
适应场景:后端业务逻辑简单的服务,比如接口直接提供对数据库增删改查
4.2后端三层架构
定义:
表现层:controller
逻辑层:service
数据访问层:dao
优点:逻辑与数据层分离
缺点:模型层分层比较粗,核心的复杂业务逻辑都放到模型层,导致模型层很乱
适应场景:后端业务逻辑简单的服务,比如接口直接提供对数据库增删改查
如何来做系统分层
确定层次
在我看来,最主要的一点就是你需要理清楚每个层次的边界是什么。你也许会问:“如果按照三层架构来分层的话,每一层的边界不是很容易就界定吗?”
没错,当业务逻辑简单时,层次之间的边界的确清晰,开发新的功能时也知道哪些代码要往哪儿写。但是当业务逻辑变得越来越复杂时,边界就会变得越来越模糊。
定义接口
任何一个系统中都有用户系统,最基本的接口是返回用户信息的接口,它调用逻辑层的 GetUser 方法,GetUser 方法又和 User DB 交互获取数据
遵循设计原则
使用设计原则如单一职责原则、依赖倒置原则等,确保每个层次都专注于一个特定的功能。这有助于确保系统的一致性和可维护性
5.总结
复杂架构中的分层设计是一种重要的软件架构策略,它在简化系统复杂性、实现专业职责分离、提升可复用性和可维护性、方便系统横向扩展以及实现职责划分等方面发挥着关键作用。然而,在实施过程中,需要注意清晰职责、灵活调整层次划分以及权衡利弊。通过合理运用分层设计,可以构建出更加稳定、可扩展和易于维护的软件系统。
标签:逻辑,Tomcat,数据源,接口,分层,开发,连接池 From: https://blog.csdn.net/nice66660/article/details/143628802