美文网首页
搭建行政资源管理系统 项目开发环境

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

作者: 陈晓阳_矿洞程序员 | 来源:发表于2019-03-10 09:59 被阅读0次
    行政管理系统 架构搭建

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

    }

    }

    |

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

    相关文章

      网友评论

          本文标题:搭建行政资源管理系统 项目开发环境

          本文链接:https://www.haomeiwen.com/subject/ujfupqtx.html