上一篇我发表的《Java高級项目实战演练03:CRM系统数据库设计》,下面我再讲CRM系统构建。
新创建 ** ven web项目shsxt_crm自然环境配备 (编号, jre, Java compiler)修改pom文件修改(加上jar包, 运作器皿的软件, 資源文件的载入设定)<project xmlns="http:// ** ven.apache.org/POM/4.0.0" xmlns:xsi="http:// ** .w3.org/2001/XMLSche ** -instance" xsi:sche ** Location="http:// ** ven.apache.org/POM/4.0.0 http:// ** ven.apache.org/ ** ven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.shsxt</groupId> <artifactId>crm</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>crm</name> <url>http:// ** ven.apache.org</url> <dependencies> <!-- junit 检测 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- spring 关键jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.2.RELEASE</version> </dependency> <!-- spring 检测jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.2.RELEASE</version> </dependency> <!-- spring jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.2.RELEASE</version> </dependency> <!-- spring事情 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.2.RELEASE</version> </dependency> <!-- aspectj横切面程序编写的jar --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version> </dependency> <!-- c3p0 数据库连接池 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <!-- 加上mybatis与Spring融合的关键包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!-- mysql 驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency>大量学习材料沟通交流共享请到君 羊 598960698 <!-- 日志打印出有关的jar --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.2</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency> <!-- springmvc 依靠jar --> <!-- spring web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.2.RELEASE</version> </dependency> <!-- spring mvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.2.RELEASE</version> </dependency> <!-- web servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency> <!-- 加上json 依靠jar包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support </artifactId> <version>4.3.2.RELEASE</version> </dependency> <dependency> <groupId>org.free ** rker</groupId> <artifactId>free ** rker</artifactId> <version>2.3.21</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency> <!-- fastjson配置 --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.13</version></dependency><!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version></dependency>更多学习资料交流分享请进君 羊 598960698 </dependencies> <build> <finalName>crm</finalName> <!-- 方式一 --> <resources> <resource> <directory>src/ ** in/resources</directory> </resource> <resource> <directory>src/ ** in/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> <include>**/*.tld</include> </includes> <filtering>false</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId> ** ven-jetty-plugin</artifactId> <version>6.1.25</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <contextPath>/crm</contextPath> <webDefaultXml>src/ ** in/resources/webdefault.xml</webDefaultXml> </configuration> </plugin> </plugins> </build></project>数据库配置文件jdbc.properties添加jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/crm01?useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=root日志输出log4j.properties 文件添加log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG spring.xml容器配置文件添加<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:// ** .springframework.org/sche ** /beans" xmlns:xsi="http:// ** .w3.org/2001/XMLSche ** -instance" xmlns:context="http:// ** .springframework.org/sche ** /context" xmlns:aop="http:// ** .springframework.org/sche ** /aop" xmlns:tx="http:// ** .springframework.org/sche ** /tx" xsi:sche ** Location="http:// ** .springframework.org/sche ** /beans http:// ** .springframework.org/sche ** /beans/spring-beans.xsd http:// ** .springframework.org/sche ** /context http:// ** .springframework.org/sche ** /context/spring-context.xsd http:// ** .springframework.org/sche ** /aop http:// ** .springframework.org/sche ** /aop/spring-aop.xsd http:// ** .springframework.org/sche ** /tx http:// ** .springframework.org/sche ** /tx/spring-tx.xsd"> <context:property-placeholder location="classpath:jdbc.properties" /> <aop:aspectj-autoproxy /> <!-- 配置数据源 --> <!-- 配置c3p0 数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!-- 配置事务管理器 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 设置事物增强 --> <tx:advice id="txAdvice" transaction- ** nager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="find*" read-only="true" /> <tx:method name="query*" read-only="true" /> <tx:method name="load*" read-only="true" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="del*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <!-- aop 切面配置 --> <aop:config> <aop:pointcut id="servicePointcut" expression="execution(* com.shsxt.crm.service..*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointcut" /> </aop:config> <!-- 配置 sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:mybatis.xml"></property> <!-- 加载mybatis --> <property name=" ** pperLocations" value="classpath:com/shsxt/crm/ ** pper/*.xml" /> </bean> <!-- 配置扫描器 --> <bean id=" ** pperScanner" class="org.mybatis.spring. ** pper.MapperScannerConfigurer"> <!-- 扫描com.shsxt.dao这个包以及它的子包下的所有映射接口类 --> <property name="basePackage" value="com.shsxt.crm.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean></beans>mybatis.xml 全局配置文件添加<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <typeAliases> <package name="com.shsxt.crm.po"/> </typeAliases> <plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <!-- 该参数默认为false --> <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 --> <!-- 和startPage中的pageNum效果一样 --> <property name="offsetAsPageNum" value="true" /> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true" /> <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 --> <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型) --> <property name="pageSizeZero" value="true" /> <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 --> <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 --> <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 --> <property name="reasonable" value="true" /> <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 --> <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 --> <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值 --> <property name="params" value="pageNum=start;pageSize=limit;pageSizeZero=zero;reasonable=heli;count=contsql" /> </plugin> </plugins></configuration>这是CRM系统搭建文档的上半部分,下半部分放到下篇文章再讲,谢谢阅读,请多关注。
扫码咨询与免费使用
申请免费使用