• 第2章搭建CRM项目开发环境(搭建开发环境)


    2.2搭建开发环境

    2.2.1创建crm项目

    使用IDEA创建Empty Project,作为项目的工作空间

    2.2.2创建crm模块

    创建maven类型的模块,作为开发工程

    2.2.3为项目添加meaven依赖

    项目的pom.xml文件

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0</modelVersion>
    5. <groupId>com.it</groupId>
    6. <artifactId>crm</artifactId>
    7. <version>1.0-SNAPSHOT</version>
    8. <packaging>war</packaging>
    9. <name>crm Maven Webapp</name>
    10. <!-- FIXME change it to the project's website -->
    11. <url>http://www.example.com</url>
    12. <properties>
    13. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    14. <maven.compiler.source>1.7</maven.compiler.source>
    15. <maven.compiler.target>1.7</maven.compiler.target>
    16. </properties>
    17. <dependencies>
    18. <dependency>
    19. <groupId>junit</groupId>
    20. <artifactId>junit</artifactId>
    21. <version>4.11</version>
    22. <scope>test</scope>
    23. </dependency>
    24. <!-- MySQL数据库连接驱动 -->
    25. <dependency>
    26. <groupId>mysql</groupId>
    27. <artifactId>mysql-connector-java</artifactId>
    28. <version>5.1.43</version>
    29. </dependency>
    30. <!-- JDBC数据源连接池 -->
    31. <dependency>
    32. <groupId>com.alibaba</groupId>
    33. <artifactId>druid</artifactId>
    34. <version>1.1.1</version>
    35. </dependency>
    36. <!-- MyBatis框架依赖 -->
    37. <dependency>
    38. <groupId>org.mybatis</groupId>
    39. <artifactId>mybatis</artifactId>
    40. <version>3.4.1</version>
    41. </dependency>
    42. <!-- Spring框架依赖的JAR配置 -->
    43. <dependency>
    44. <groupId>org.springframework</groupId>
    45. <artifactId>spring-context</artifactId>
    46. <version>4.3.9.RELEASE</version>
    47. </dependency>
    48. <dependency>
    49. <groupId>org.springframework</groupId>
    50. <artifactId>spring-aop</artifactId>
    51. <version>4.3.9.RELEASE</version>
    52. </dependency>
    53. <dependency>
    54. <groupId>org.springframework</groupId>
    55. <artifactId>spring-core</artifactId>
    56. <version>4.3.9.RELEASE</version>
    57. </dependency>
    58. <dependency>
    59. <groupId>org.springframework</groupId>
    60. <artifactId>spring-beans</artifactId>
    61. <version>4.3.9.RELEASE</version>
    62. </dependency>
    63. <dependency>
    64. <groupId>org.springframework</groupId>
    65. <artifactId>spring-jdbc</artifactId>
    66. <version>4.3.9.RELEASE</version>
    67. </dependency>
    68. <dependency>
    69. <groupId>org.springframework</groupId>
    70. <artifactId>spring-tx</artifactId>
    71. <version>4.3.9.RELEASE</version>
    72. </dependency>
    73. <dependency>
    74. <groupId>org.springframework</groupId>
    75. <artifactId>spring-web</artifactId>
    76. <version>4.3.9.RELEASE</version>
    77. </dependency>
    78. <dependency>
    79. <groupId>org.springframework</groupId>
    80. <artifactId>spring-webmvc</artifactId>
    81. <version>4.3.9.RELEASE</version>
    82. </dependency>
    83. <dependency>
    84. <groupId>org.springframework</groupId>
    85. <artifactId>spring-oxm</artifactId>
    86. <version>4.3.9.RELEASE</version>
    87. </dependency>
    88. <!-- Spring AOP支持-->
    89. <dependency>
    90. <groupId>org.aspectj</groupId>
    91. <artifactId>aspectjweaver</artifactId>
    92. <version>1.8.9</version>
    93. </dependency>
    94. <!-- MyBatis与Spring整合依赖 -->
    95. <dependency>
    96. <groupId>org.mybatis</groupId>
    97. <artifactId>mybatis-spring</artifactId>
    98. <version>1.3.0</version>
    99. </dependency>
    100. <!-- servlet及jstl标签库依赖的JAR配置 -->
    101. <dependency>
    102. <groupId>javax.servlet</groupId>
    103. <artifactId>javax.servlet-api</artifactId>
    104. <version>3.1.0</version>
    105. </dependency>
    106. <dependency>
    107. <groupId>javax.servlet.jsp.jstl</groupId>
    108. <artifactId>jstl-api</artifactId>
    109. <version>1.2</version>
    110. </dependency>
    111. <dependency>
    112. <groupId>org.apache.taglibs</groupId>
    113. <artifactId>taglibs-standard-spec</artifactId>
    114. <version>1.2.1</version>
    115. </dependency>
    116. <dependency>
    117. <groupId>org.apache.taglibs</groupId>
    118. <artifactId>taglibs-standard-impl</artifactId>
    119. <version>1.2.1</version>
    120. </dependency>
    121. <!-- 加载jackson插件依赖 -->
    122. <dependency>
    123. <groupId>com.fasterxml.jackson.core</groupId>
    124. <artifactId>jackson-core</artifactId>
    125. <version>2.7.3</version>
    126. </dependency>
    127. <dependency>
    128. <groupId>com.fasterxml.jackson.core</groupId>
    129. <artifactId>jackson-databind</artifactId>
    130. <version>2.7.3</version>
    131. </dependency>
    132. <dependency>
    133. <groupId>com.fasterxml.jackson.core</groupId>
    134. <artifactId>jackson-annotations</artifactId>
    135. <version>2.7.3</version>
    136. </dependency>
    137. <!--poi依赖-->
    138. <dependency>
    139. <groupId>org.apache.poi</groupId>
    140. <artifactId>poi</artifactId>
    141. <version>3.15</version>
    142. </dependency>
    143. <!-- 文件上传 -->
    144. <dependency>
    145. <groupId>commons-fileupload</groupId>
    146. <artifactId>commons-fileupload</artifactId>
    147. <version>1.3.1</version>
    148. </dependency>
    149. <!-- Log4j2依赖的JAR配置 -->
    150. <dependency>
    151. <groupId>org.apache.logging.log4j</groupId>
    152. <artifactId>log4j-api</artifactId>
    153. <version>2.3</version>
    154. </dependency>
    155. <dependency>
    156. <groupId>org.apache.logging.log4j</groupId>
    157. <artifactId>log4j-core</artifactId>
    158. <version>2.3</version>
    159. </dependency>
    160. </dependencies>
    161. <build>
    162. <resources>
    163. <resource>
    164. <directory>src/main/java</directory>
    165. <includes>
    166. <include>**/*.xml</include>
    167. </includes>
    168. </resource>
    169. <resource>
    170. <directory>src/main/resources</directory>
    171. <includes>
    172. <include>**/*.*</include>
    173. </includes>
    174. </resource>
    175. </resources>
    176. <finalName>crm</finalName>
    177. <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
    178. <plugins>
    179. <plugin>
    180. <artifactId>maven-clean-plugin</artifactId>
    181. <version>3.1.0</version>
    182. </plugin>
    183. <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
    184. <plugin>
    185. <artifactId>maven-resources-plugin</artifactId>
    186. <version>3.0.2</version>
    187. </plugin>
    188. <plugin>
    189. <artifactId>maven-compiler-plugin</artifactId>
    190. <version>3.8.0</version>
    191. </plugin>
    192. <plugin>
    193. <artifactId>maven-surefire-plugin</artifactId>
    194. <version>2.22.1</version>
    195. </plugin>
    196. <plugin>
    197. <artifactId>maven-war-plugin</artifactId>
    198. <version>3.2.2</version>
    199. </plugin>
    200. <plugin>
    201. <artifactId>maven-install-plugin</artifactId>
    202. <version>2.5.2</version>
    203. </plugin>
    204. <plugin>
    205. <artifactId>maven-deploy-plugin</artifactId>
    206. <version>2.8.2</version>
    207. </plugin>
    208. </plugins>
    209. </pluginManagement>
    210. </build>
    211. </project>

    2.2.4添加相关配置文件

    (1)mybatis配置

    mybatis-config.xml

    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE configuration
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <!-- settings:控制mybatis全局行为-->
    7. <settings>
    8. <!-- 设置mybatis输出日志-->
    9. <setting name="logImpl" value="STDOUT_LOGGING"/>
    10. </settings>
    11. <!-- 设置别名,主要为了简化对于类名的指定-->
    12. <typeAliases>
    13. <package name="com.it.entity"/>
    14. </typeAliases>
    15. <!--sql映射文件的位置-->
    16. <mappers>
    17. <!-- name:是包名,这个包中的所有mapper.xml一次都能够加载
    18. 使用package的要求:
    19. 1.mapper文件名和dao接口名必须完全一样,包括大小写
    20. 2.mapping文件和dao接口必须在同一目录
    21. -->
    22. <package name="com.it.dao"/>
    23. </mappers>
    24. </configuration>

    (2)配置数据连接和事务

    applicationContext-datasource.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:aop="http://www.springframework.org/schema/aop"
    5. xmlns:tx="http://www.springframework.org/schema/tx"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
    8. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
    9. <!-- 配置数据源 -->
    10. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    11. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    12. <property name="username" value="root"/>
    13. <property name="password" value="123456"/>
    14. <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_crm_ssm?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
    15. </bean>
    16. <!-- 配置SqlSessionFactory -->
    17. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    18. <!-- 必须注入属性dataSource -->
    19. <property name="dataSource" ref="dataSource"/>
    20. <!-- 如果mybatis没有特殊的配置(比如别名等),configLocation可以省去 ;否则,不能省略-->
    21. <property name="configLocation" value="classpath:mybatis-config.xml"/>
    22. </bean>
    23. <!-- mapper注解扫描器配置,扫描@MapperScan注解,自动生成代码对象 -->
    24. <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    25. <property name="basePackage" value="com.it.dao"/>
    26. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    27. </bean>
    28. <!-- 配置事务管理器 -->
    29. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    30. <property name="dataSource" ref="dataSource"/>
    31. </bean>
    32. <!-- 配置事务 -->
    33. <aop:config>
    34. <aop:pointcut expression="execution(* com.it.service.*.*(..))" id="allMethodPointcut"/>
    35. <aop:advisor advice-ref="txAdvice" pointcut-ref="allMethodPointcut"/>
    36. </aop:config>
    37. <tx:advice id="txAdvice" transaction-manager="transactionManager">
    38. <tx:attributes>
    39. <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/>
    40. <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/>
    41. <tx:method name="edit*" propagation="REQUIRED" rollback-for="Exception"/>
    42. <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>
    43. <tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/>
    44. <tx:method name="do*" propagation="REQUIRED" rollback-for="Exception"/>
    45. <tx:method name="*" propagation="REQUIRED" read-only="true"/>
    46. </tx:attributes>
    47. </tx:advice>
    48. </beans>

    (3)springmvc配置

    applicationContext-mvc.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:p="http://www.springframework.org/schema/p"
    6. xmlns:util="http://www.springframework.org/schema/util"
    7. xmlns:aop="http://www.springframework.org/schema/aop"
    8. xmlns:tx="http://www.springframework.org/schema/tx"
    9. xmlns:mvc="http://www.springframework.org/schema/mvc"
    10. xsi:schemaLocation="
    11. http://www.springframework.org/schema/beans
    12. http://www.springframework.org/schema/beans/spring-beans.xsd
    13. http://www.springframework.org/schema/context
    14. http://www.springframework.org/schema/context/spring-context.xsd
    15. http://www.springframework.org/schema/tx
    16. http://www.springframework.org/schema/tx/spring-tx.xsd
    17. http://www.springframework.org/schema/aop
    18. http://www.springframework.org/schema/aop/spring-aop.xsd
    19. http://www.springframework.org/schema/mvc
    20. http://www.springframework.org/schema/mvc/spring-mvc.xsd
    21. http://www.springframework.org/schema/util
    22. http://www.springframework.org/schema/util/spring-util.xsd">
    23. <!-- dispatcherServlet截获所有URL请求 -->
    24. <mvc:default-servlet-handler />
    25. <!-- 组件扫描器:spring mvc 扫描包下的controller -->
    26. <context:component-scan base-package="com.it.crm.web.controller"/>
    27. <context:component-scan base-package="com.it.crm.settings.web.controller"/>
    28. <!-- 配置注解驱动 -->
    29. <mvc:annotation-driven/>
    30. <!-- 配置视图解析器 -->
    31. <bean id="viewResolver"
    32. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    33. <property name="prefix" value="/WEB-INF/pages/"/>
    34. <property name="suffix" value=".jsp"/>
    35. </bean>
    36. <!-- 配置文件上传解析器 id:必须是multipartResolver-->
    37. <!--<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    38. <property name="maxUploadSize" value="#{1024*1024*80}"/>
    39. <property name="defaultEncoding" value="utf-8"/>
    40. </bean>-->
    41. </beans>

    (4)spring总配置文件

    applicationContext.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:p="http://www.springframework.org/schema/p"
    6. xmlns:aop="http://www.springframework.org/schema/aop"
    7. xmlns:tx="http://www.springframework.org/schema/tx"
    8. xmlns:task="http://www.springframework.org/schema/task"
    9. xsi:schemaLocation="
    10. http://www.springframework.org/schema/beans
    11. http://www.springframework.org/schema/beans/spring-beans.xsd
    12. http://www.springframework.org/schema/context
    13. http://www.springframework.org/schema/context/spring-context.xsd
    14. http://www.springframework.org/schema/tx
    15. http://www.springframework.org/schema/tx/spring-tx.xsd
    16. http://www.springframework.org/schema/aop
    17. http://www.springframework.org/schema/aop/spring-aop.xsd">
    18. <!-- 加载系统配置文件
    19. <context:property-placeholder location="classpath:*.properties" />-->
    20. <!-- 扫描注解 -->
    21. <context:component-scan base-package="com.it.crm.service" />
    22. <!-- 导入数据相关配置 -->
    23. <import resource="applicationContext-datasource.xml" />
    24. </beans>

    (5)web.xml配置

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xmlns="http://java.sun.com/xml/ns/javaee"
    4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    5. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    6. id="dataservice" version="3.0">
    7. <display-name>dataservice application</display-name>
    8. <!-- spring监听器加载applicationContext.xml配置文件 -->
    9. <context-param>
    10. <param-name>contextConfigLocation</param-name>
    11. <param-value>classpath:applicationContext.xml</param-value>
    12. </context-param>
    13. <listener>
    14. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    15. </listener>
    16. <!-- spring字符过滤器 -->
    17. <filter>
    18. <filter-name>encodingFilter</filter-name>
    19. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    20. <init-param>
    21. <param-name>encoding</param-name>
    22. <param-value>UTF-8</param-value>
    23. </init-param>
    24. </filter>
    25. <filter-mapping>
    26. <filter-name>encodingFilter</filter-name>
    27. <url-pattern>/*</url-pattern>
    28. </filter-mapping>
    29. <!-- Spring mvc分发servlet -->
    30. <servlet>
    31. <servlet-name>dispatcher</servlet-name>
    32. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    33. <init-param>
    34. <param-name>contextConfigLocation</param-name>
    35. <param-value>classpath:applicationContext-mvc.xml</param-value>
    36. </init-param>
    37. <load-on-startup>1</load-on-startup>
    38. </servlet>
    39. <servlet-mapping>
    40. <servlet-name>dispatcher</servlet-name>
    41. <url-pattern>/</url-pattern>
    42. </servlet-mapping>
    43. <servlet-mapping>
    44. <servlet-name>dispatcher</servlet-name>
    45. <url-pattern>*.do</url-pattern>
    46. </servlet-mapping>
    47. <!-- 欢迎页,默认进入index controller -->
    48. <welcome-file-list>
    49. <welcome-file>/</welcome-file>
    50. </welcome-file-list>
    51. </web-app>

    添加符合开发规范的相应的项目结构

     

     

     

  • 相关阅读:
    warning C4819最简单解决办法
    ubuntu 根目录空间扩容
    自定义类型(结构体、枚举、联合)
    Docker的一些理解
    SpringCloud 微服务全栈体系(五)
    三步在两台服务器间迁移conda环境
    使用 OpenTelemetry 构建 .NET 应用可观测性(4):ASP.NET Core 应用中集成 OTel
    危化企业双重预防机制数字化建设进入全面实施阶段
    生成二维坐标数组numpy.meshgrid()
    JavaWeb初学项目的问题排查思路
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/125517429