前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建行政资源管理系统 项目开发环境

搭建行政资源管理系统 项目开发环境

作者头像
爱明依
发布2019-03-12 14:55:20
6470
发布2019-03-12 14:55:20
举报
文章被收录于专栏:爱明依爱明依
11863677-22bd045f499fb738.png
11863677-22bd045f499fb738.png

行政管理系统 架构搭建

2、具体内容

本次的项目开发采用的是Spring MVC + MyBatis开发模式,并且所有的数据验证都将通过拦截器完成。那么在整个项目的整合过程之中,有部分的操作是可以进行拷贝的;

2.1、搭建Spring MVC环境

1、 为项目添加Spring的开发支持,添加的时候一定要选择好持久化开发包;

11863677-5e76ba74092968b7.png
11863677-5e76ba74092968b7.png

搭建Spring MVC环境

2、 观察web.xml文件以及变更

· 一定会默认增加一个Spring的监听器:

|

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

|

· 设置applicationContex.xml文件路径:

|

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

|

3、 添加Spring MVC之中所要使用到的Servlet程序;

|

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>*.action</url-pattern>

</servlet-mapping>

|

4、 为项目设计统一的编码,为UTF-8,使用Spring MVC中默认提供的编码过滤器完成;

|

<filter>

<filter-name>encoding</filter-name>

<filter-class>

org.springframework.web.filter.CharacterEncodingFilter

</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

|

5、 为项目增加首页:login.jsp、index.jsp;

|

<welcome-file-list>

<welcome-file>login.jsp</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

|

6、 修改applicationContext.xml文件;

· 追加context、mvc的命名空间;

· 追加相应的配置处理;

|

<context:annotation-config/>

<context:component-scan base-package="cn.mldn"/>

<mvc:annotation-driven/>

<mvc:default-servlet-handler/>

|

7、 因为项目之中一定会存在资源文件的问题,所以本次要准备出三个资源文件:

· Messages.properties:作为所有的信息提示;

· Pages.properties:所有的跳转页面路径;

· Validators.properties:数据验证使用。

范例:编写Messages.properties文件

|

invalidate.string.error.msg=该字段内容不允许为空!

invalidate.int.error.msg=该字段内容必须设置为整数!

invalidate.double.error.msg=该字段内容必须设置为数字!

invalidate.date.error.msg=该字段内容必须设置为日期(例如:yyyy-mm-dd)!

invalidate.datetime.error.msg=该字段内容必须设置为日期(例如:yyyy-mm-dd hh:mm:ss)!

invalidate.file.mime.error.msg=上传了非法的文件,请重新确认您需要上传的文件是否合法!

| |

vo.add.success={0}数据增加成功!

vo.add.failure={0}数据增加失败!

vo.edit.success={0}数据修改成功!

vo.edit.failure={0}数据修改失败!

vo.rm.success={0}数据删除成功!

vo.rm.failure={0}数据删除失败!

|

范例:编写Validators.properties文件

|

mimeType=image/bmp|image/gif|image/jpg|image/jpeg|image/png

XxxAction.add.rules=xx:int|xx:string|hiredate:date|sal:double|dept.dname:string

|

范例:编写Pages.properties文件

|

errors.page=/errors.jsp

forward.page=/forward.jsp

|

8、 随后还需要在applicationContext.xml文件里面追加相应的配置操作。

|

<mvc:default-servlet-handler/>

<bean id="messageSource"

class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basenames">

<array>

<value>Messages</value>

<value>Pages</value>

<value>Validators</value>

</array>

</property>

</bean>

|

9、 考虑到在Spring MVC之中需要提供有转换器以及提供有资源读取操作,那么建议设计一个抽象的Action父类。

|

package cn.mldn.amr.action.abs;

import java.text.SimpleDateFormat;

import javax.annotation.Resource;

import org.springframework.beans.propertyeditors.CustomDateEditor;

import org.springframework.context.MessageSource;

import org.springframework.web.bind.WebDataBinder;

import org.springframework.web.bind.annotation.InitBinder;

public abstract class AbstractAction {

@Resource

private MessageSource msgSource; // 自动匹配注入

@InitBinder

public void initBinder(WebDataBinder binder) { // 转换器

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

// 将自定义的转换器进行配置,表示以后如果发现有Date类型,就使用sdf对象进行转换,并且允许数据为null

binder.registerCustomEditor(java.util.Date.class, new CustomDateEditor(

sdf, true));

}

}

|

那么此时,与MVC所需要的相关的操作就配置成功了。

10、 将拦截器的程序拷贝到项目之中;

11、 需要将io包、json的开发包拷贝到项目之中;

2.2、整合Spring与MyBatis

1、 将mybatis的开发包以及与spring整合开发包拷贝到项目之中;

2、 建立database.properties文件定义数据库,定义的时候请保持一个原则:只有一个数据库连接;

|

db.driver=org.gjt.mm.mysql.Driver

db.url=jdbc:mysql://localhost:3306/mldn

db.user=root

db.password=mysqladmin

pool.max=1

pool.min=1

pool.init=1

pool.idle=1

|

3、 在applicationContext.xml文件之中引用此配置文件;

|

<context:property-placeholder location="classpath:database.properties" />

|

4、 在applicationContext.xml文件里面定义数据库连接的相关信息;

|

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

<property name="driverClass" value="${db.driver}" />

<property name="jdbcUrl" value="${db.url}" />

<property name="user" value="${db.user}" />

<property name="password" value="${db.password}" />

<property name="maxPoolSize" value="${pool.max}" />

<property name="minPoolSize" value="${pool.min}" />

<property name="initialPoolSize" value="${pool.init}" />

<property name="maxIdleTime" value="${pool.idle}" />

</bean>

|

5、 定义事务处理;

|

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

</bean>

|

6、 定义MyBatis要使用的SqlSessionFactory;

|

<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource"/>

<property name="configLocation" value="classpath:mybatis.cfg.xml"/>

</bean>

|

7、 准备出mybatis.cfg.xml文件;

8、 本次使用的包统一为:cn.mldn.amr;

· 修改log4j.properties文件定义:

|

log4j.logger.cn.mldn.amr.mapping=TRACE

|

9、 配置所有的切入点;

|

<tx:annotation-driven transaction-manager="transactionManager" />

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<tx:method name="insert*" propagation="REQUIRED"/>

<tx:method name="update*" propagation="REQUIRED"/>

<tx:method name="delete*" propagation="REQUIRED"/>

<tx:method name="add*" propagation="REQUIRED"/>

<tx:method name="edit*" propagation="REQUIRED"/>

<tx:method name="change*" propagation="REQUIRED"/>

<tx:method name="remove*" propagation="REQUIRED"/>

<tx:method name="login*" propagation="REQUIRED"/>

<tx:method name="get*" propagation="REQUIRED" read-only="true"/>

<tx:method name="load*" propagation="REQUIRED" read-only="true"/>

<tx:method name="list*" propagation="REQUIRED" read-only="true"/>

<tx:method name="*" propagation="REQUIRED" read-only="true"/>

</tx:attributes>

</tx:advice>

<aop:config expose-proxy="true">

<aop:pointcut expression="execution(* cn.mldn..service..(..))" id="pointcut"/>

<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>

</aop:config>

|

10、 考虑到设计的问题,为业务层增加一个抽象类;

|

package cn.mldn.amr.service.abs;

public abstract class AbstractService {

}

|

11、 为数据层增加一个抽象类;

|

package cn.mldn.amr.dao.abs;

import javax.annotation.Resource;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

public abstract class AbstractDAO {

@Resource

private SqlSessionFactory factory ;

public SqlSessionFactory getFactory() {

return factory;

}

public SqlSession getSession() {

return this.factory.openSession() ;

}

}

|

这样就基本上准备好了后台的操作逻辑。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、具体内容
    • 2.1、搭建Spring MVC环境
      • 2.2、整合Spring与MyBatis
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档