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

11863677-22bd045f499fb738.png
行政管理系统 架构搭建

2、具体内容

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

2.1、搭建Spring MVC环境

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

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

}

}

|

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统;本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。 本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有: 1、有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。 2、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。 3、学生信息的修改。 4、班级管理信息的输入,包括输入班级设置、年级信息等。 5、班级管理信息的查询。 6、班级管理信息的修改。 7、学生课程的设置和修改。 学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键字:控件、窗体、域、数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯洁的明依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值