专栏首页爱明依搭建行政资源管理系统 项目开发环境

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

行政管理系统 架构搭建

2、具体内容

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

2.1、搭建Spring MVC环境

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

搭建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() ;

}

}

|

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 页面弹出层组件layer的用法

    layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)。 若你采用layer.open({ty...

    爱明依
  • jstack:java 堆栈工具

    生成线程快照的主要目的就是定位线程出现长时间停顿的原因,如线程死锁,死循环请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过...

    爱明依
  • spring boot 项目 如何接收 http 请求中body 体中的数据?

    在与华为北向IOT平台对接的过程中,在已经打通了创建订阅这个功能之后。遇到了一个回调地址接口编写的问题。 由于我们编写的回调地址接口,是用来接收华为设备的实...

    爱明依
  • .net中使用oracle数据库分页的土办法

    近日公司一网站项目,要调用其它系统(call center系统)的oracle数据库数据,只能连接查询,无法创建存储过程,所以只能在sql语句上动脑筋实现分页:...

    菩提树下的杨过
  • spring的spel 转

     Spring 3.0 创建了一种新的方式用以配置对象的注入(set注入或者构造参数注入),它便是SpEL (Spring Expression Languag...

    尚浩宇
  • SSM整合开发

    controller:作为请求转发,调用service接口处理逻辑,页面所有路径的访问方法:控制层的命名空间+@RequestMapping的value ser...

    Krry
  • 使用Excel&Python&Hive&SparkSQL进行数据分析开篇-环境搭建攻略!

    计划写一个新系列,分别使用Excel、Python、Hive、SparkSQL四种方式来实现简单的数据分析功能,例如GroupBy、透视表等功能。

    石晓文
  • 使用Excel&Python&Hive&SparkSQL进行数据分析开篇-环境搭建攻略!

    计划写一个新系列,分别使用Excel、Python、Hive、SparkSQL四种方式来实现简单的数据分析功能,例如GroupBy、透视表等功能。

    用户2769421
  • Spring 框架基础(01):核心组件总结,基础环境搭建

    一站式,每一个层都提供的解决方案 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis,j...

    知了一笑
  • 快速学习-MyBatis全局配置文件

    cwl_java

扫码关注云+社区

领取腾讯云代金券