SSM框架项目结构目录以及配置文件

发布时间 2023-11-18 13:34:56作者: 小徐同学x

一、基于Idea集成环境Maven管理的Web项目创建

1、新建一个project

2、补充好项目结构(这里其实可以通过配置来补充,生成之后就是完整的项目目录结构),这里要是自己创建完之后,要是文件不像这种样式的,需要自己改一下文件类型

注意一定要配置好webapp路径

3、配置Tomcat

 

完成以上步骤基本的Maven管理的Web项目就搭建完成了。

二、配置pom.xml

配置文件信息:

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5   <modelVersion>4.0.0</modelVersion>
  6 <!--下面的groupid等信息不用赋值过去 -->
  7   <groupId>com.bjpowernode.crm</groupId>
  8   <artifactId>crm</artifactId>
  9   <version>1.0-SNAPSHOT</version>
 10   <packaging>war</packaging>
 11 
 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   
 18 <!--下面是依赖 -->
 19   <dependencies>
 20     
 21     <dependency>
 22       <groupId>junit</groupId>
 23       <artifactId>junit</artifactId>
 24       <version>4.11</version>
 25       <scope>test</scope>
 26     </dependency>
 27 
 28     <!-- MySQL数据库连接驱动 -->
 29     <dependency>
 30       <groupId>mysql</groupId>
 31       <artifactId>mysql-connector-java</artifactId>
 32       <version>8.0.17</version>
 33     </dependency>
 34 
 35     <!-- JDBC数据源连接池 -->
 36     <dependency>
 37       <groupId>com.alibaba</groupId>
 38       <artifactId>druid</artifactId>
 39       <version>1.1.1</version>
 40     </dependency>
 41 
 42     <!-- MyBatis框架依赖 -->
 43     <dependency>
 44       <groupId>org.mybatis</groupId>
 45       <artifactId>mybatis</artifactId>
 46       <version>3.4.1</version>
 47     </dependency>
 48 
 49     <!-- Spring框架依赖的JAR配置 -->
 50     <dependency>
 51       <groupId>org.springframework</groupId>
 52       <artifactId>spring-context</artifactId>
 53       <version>4.3.9.RELEASE</version>
 54     </dependency>
 55     <dependency>
 56       <groupId>org.springframework</groupId>
 57       <artifactId>spring-aop</artifactId>
 58       <version>4.3.9.RELEASE</version>
 59     </dependency>
 60     <dependency>
 61       <groupId>org.springframework</groupId>
 62       <artifactId>spring-core</artifactId>
 63       <version>4.3.9.RELEASE</version>
 64     </dependency>
 65     <dependency>
 66       <groupId>org.springframework</groupId>
 67       <artifactId>spring-beans</artifactId>
 68       <version>4.3.9.RELEASE</version>
 69     </dependency>
 70     <dependency>
 71       <groupId>org.springframework</groupId>
 72       <artifactId>spring-jdbc</artifactId>
 73       <version>4.3.9.RELEASE</version>
 74     </dependency>
 75     <dependency>
 76       <groupId>org.springframework</groupId>
 77       <artifactId>spring-tx</artifactId>
 78       <version>4.3.9.RELEASE</version>
 79     </dependency>
 80     <dependency>
 81       <groupId>org.springframework</groupId>
 82       <artifactId>spring-web</artifactId>
 83       <version>4.3.9.RELEASE</version>
 84     </dependency>
 85     <dependency>
 86       <groupId>org.springframework</groupId>
 87       <artifactId>spring-webmvc</artifactId>
 88       <version>4.3.9.RELEASE</version>
 89     </dependency>
 90     <dependency>
 91       <groupId>org.springframework</groupId>
 92       <artifactId>spring-oxm</artifactId>
 93       <version>4.3.9.RELEASE</version>
 94     </dependency>
 95 
 96     <!-- Spring AOP支持-->
 97     <dependency>
 98       <groupId>org.aspectj</groupId>
 99       <artifactId>aspectjweaver</artifactId>
100       <version>1.8.9</version>
101     </dependency>
102 
103     <!-- MyBatis与Spring整合依赖 -->
104     <dependency>
105       <groupId>org.mybatis</groupId>
106       <artifactId>mybatis-spring</artifactId>
107       <version>1.3.0</version>
108     </dependency>
109 
110     <!-- servlet及jstl标签库依赖的JAR配置 -->
111     <dependency>
112       <groupId>javax.servlet</groupId>
113       <artifactId>javax.servlet-api</artifactId>
114       <version>3.1.0</version>
115     </dependency>
116     <dependency>
117       <groupId>javax.servlet.jsp.jstl</groupId>
118       <artifactId>jstl-api</artifactId>
119       <version>1.2</version>
120     </dependency>
121     <dependency>
122       <groupId>org.apache.taglibs</groupId>
123       <artifactId>taglibs-standard-spec</artifactId>
124       <version>1.2.1</version>
125     </dependency>
126     <dependency>
127       <groupId>org.apache.taglibs</groupId>
128       <artifactId>taglibs-standard-impl</artifactId>
129       <version>1.2.1</version>
130     </dependency>
131 
132     <!-- 加载jackson插件依赖 -->
133     <dependency>
134       <groupId>com.fasterxml.jackson.core</groupId>
135       <artifactId>jackson-core</artifactId>
136       <version>2.7.3</version>
137     </dependency>
138     <dependency>
139       <groupId>com.fasterxml.jackson.core</groupId>
140       <artifactId>jackson-databind</artifactId>
141       <version>2.7.3</version>
142     </dependency>
143     <dependency>
144       <groupId>com.fasterxml.jackson.core</groupId>
145       <artifactId>jackson-annotations</artifactId>
146       <version>2.7.3</version>
147     </dependency>
148 
149     <!--poi依赖-->
150     <dependency>
151       <groupId>org.apache.poi</groupId>
152       <artifactId>poi</artifactId>
153       <version>3.15</version>
154     </dependency>
155 
156     <!-- 文件上传 -->
157     <dependency>
158       <groupId>commons-fileupload</groupId>
159       <artifactId>commons-fileupload</artifactId>
160       <version>1.3.1</version>
161     </dependency>
162 
163     <!-- Log4j2依赖的JAR配置 -->
164     <dependency>
165       <groupId>org.apache.logging.log4j</groupId>
166       <artifactId>log4j-api</artifactId>
167       <version>2.3</version>
168     </dependency>
169     <dependency>
170       <groupId>org.apache.logging.log4j</groupId>
171       <artifactId>log4j-core</artifactId>
172       <version>2.3</version>
173     </dependency>
174     <dependency>
175       <groupId>org.apache.logging.log4j</groupId>
176       <artifactId>log4j-jcl</artifactId>
177       <version>2.3</version>
178     </dependency>
179     <dependency>
180       <groupId>org.mybatis.generator</groupId>
181       <artifactId>mybatis-generator-core</artifactId>
182       <version>1.3.2</version>
183     </dependency>
184 
185   </dependencies>
186 
187   <build>
188     <finalName>crm</finalName>
189     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
190       <plugins>
191         <plugin>
192           <artifactId>maven-clean-plugin</artifactId>
193           <version>3.1.0</version>
194         </plugin>
195         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
196         <plugin>
197           <artifactId>maven-resources-plugin</artifactId>
198           <version>3.0.2</version>
199         </plugin>
200         <plugin>
201           <artifactId>maven-compiler-plugin</artifactId>
202           <version>3.8.0</version>
203         </plugin>
204         <plugin>
205           <artifactId>maven-surefire-plugin</artifactId>
206           <version>2.22.1</version>
207         </plugin>
208         <plugin>
209           <artifactId>maven-war-plugin</artifactId>
210           <version>3.2.2</version>
211         </plugin>
212         <plugin>
213           <artifactId>maven-install-plugin</artifactId>
214           <version>2.5.2</version>
215         </plugin>
216         <plugin>
217           <artifactId>maven-deploy-plugin</artifactId>
218           <version>2.8.2</version>
219         </plugin>
220       </plugins>
221     </pluginManagement>
222     <!--注意这里的mybatis逆向工具插件要在和上面的一级-->
223     <plugins>
224       <plugin>
225         <!--Mybatis-generator插件,用于自动生成Mapper和POJO-->
226         <groupId>org.mybatis.generator</groupId>
227         <artifactId>mybatis-generator-maven-plugin</artifactId>
228         <version>1.3.2</version>
229         <configuration>
230           <!--配置文件的位置-->
231           <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
232           <verbose>true</verbose>
233           <overwrite>true</overwrite>
234         </configuration>
235         <executions>
236           <execution>
237             <id>Generate MyBatis Artifacts</id>
238             <goals>
239               <goal>generate</goal>
240             </goals>
241           </execution>
242         </executions>
243         <dependencies>
244           <dependency>
245             <groupId>org.mybatis.generator</groupId>
246             <artifactId>mybatis-generator-core</artifactId>
247             <version>1.3.2</version>
248           </dependency>
249           <dependency>
250             <groupId>mysql</groupId>
251             <artifactId>mysql-connector-java</artifactId>
252             <version>8.0.17</version>
253           </dependency>
254         </dependencies>
255       </plugin>
256     </plugins>
257 <!--这里是将配置文件编译打包 -->
258     <resources>
259       <resource>
260         <directory>src/main/java</directory>
261         <includes>
262           <include>**/*.xml</include>
263         </includes>
264       </resource>
265       <resource>
266         <directory>src/main/resources</directory>
267         <includes>
268           <include>**/*.*</include>
269         </includes>
270       </resource>
271     </resources>
272   </build>
273 </project>

三、配置SSM框架配置文件

1、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     <!--打印日志-->
 7     <settings>
 8         <setting name="logImpl" value="STDOUT_LOGGING"/>
 9     </settings>
10     <!--resultType启别名-->
11     <typeAliases>
12         <package name="com.crm.model"/>
13     </typeAliases>
14     <!--指向mapper文件位置-->
15     <mappers>
16         <package name="com.crm.mapper"/>
17     </mappers>
18 </configuration>

2、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.crm.controller"/>
27 <!--    <context:component-scan base-package="com.crm.crm.settings.web.controller"/>
28     <context:component-scan base-package="com.crm.crm.workbench.web.controller"/>-->
29     <!-- 配置注解驱动 -->
30     <mvc:annotation-driven/>
31     <!-- 配置视图解析器 -->
32     <bean id="viewResolver"
33           class="org.springframework.web.servlet.view.InternalResourceViewResolver">
34         <property name="prefix" value="/WEB-INF/pages/"/>
35         <property name="suffix" value=".jsp"/>
36     </bean>
37     <!-- 配置文件上传解析器 id:必须是multipartResolver-->
38     <!--<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
39         <property name="maxUploadSize" value="#{1024*1024*80}"/>
40         <property name="defaultEncoding" value="utf-8"/>
41     </bean>-->
42 </beans>

3、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:context="http://www.springframework.org/schema/context"
 6        xmlns:tx="http://www.springframework.org/schema/tx"
 7        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 8       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
 9       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
10       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
11     <!--这个文件是spring整合mybatis-->
12     <!-- 配置数据源 ,因为我们要让spring去管理数据库的事务,所以要让spring知道连接信息,这个数据源作用就是这个-->
13     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
14         <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
15         <property name="username" value="root"/>
16         <property name="password" value="22222"/>
17         <property name="url" value="jdbc:mysql://127.0.0.1:3306/crmssm?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai"/>
18     </bean>
19 
20     <!-- 配置SqlSessionFactory,相当于是一个数据库的实例,这样spring就实现了对数据库的管理 -->
21     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
22         <!-- 必须注入属性dataSource -->
23         <property name="dataSource" ref="dataSource"/>
24         <!-- 如果mybatis没有特殊的配置(比如别名等),configLocation可以省去 ;否则,不能省略-->
25         <property name="configLocation" value="classpath:mybatis-config.xml"/>
26     </bean>
27 
28 
29     <!-- mapper注解扫描器配置,扫描@MapperScan注解,通过动态代理机制,自动生成实现类对象 -->
30     <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
31         <property name="basePackage" value="com.crm.mapper"/>
32         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
33     </bean>
34 
35     <!-- 配置事务管理器 -->
36     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
37         <property name="dataSource" ref="dataSource"/>
38     </bean>
39 
40     <!-- 配置事务 -->
41     <aop:config>
42         <aop:pointcut expression="execution(* com.crm.service.*.*(..))" id="allMethodPointcut"/>
43         <aop:advisor advice-ref="txAdvice" pointcut-ref="allMethodPointcut"/>
44     </aop:config>
45     <tx:advice id="txAdvice" transaction-manager="transactionManager">
46         <tx:attributes>
47             <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/>
48             <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/>
49             <tx:method name="edit*" propagation="REQUIRED" rollback-for="Exception"/>
50             <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>
51             <tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/>
52             <tx:method name="do*" propagation="REQUIRED" rollback-for="Exception"/>
53             <tx:method name="*" propagation="REQUIRED" read-only="true"/>
54         </tx:attributes>
55     </tx:advice>
56 </beans>

4、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     <!-- 扫描注解,这里只对service进行扫描,因为mapper和controller在别的配置文件中已经扫描了 -->
21     <context:component-scan base-package="com.crm.service" />
22     <!-- 导入数据相关配置 -->
23     <import resource="applicationContext-datasource.xml" />
24 </beans>

四、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   
 9   <!-- spring监听器加载applicationContext.xml配置文件 -->
10   <context-param>
11     <param-name>contextConfigLocation</param-name>
12     <param-value>classpath:applicationContext.xml</param-value>
13   </context-param>
14   <listener>
15     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
16   </listener>
17   
18   <!-- spring字符过滤器 -->
19   <filter>
20     <filter-name>encodingFilter</filter-name>
21     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
22     <init-param>
23       <param-name>encoding</param-name>
24       <param-value>UTF-8</param-value>
25     </init-param>
26   </filter>
27   <filter-mapping>
28     <filter-name>encodingFilter</filter-name>
29     <url-pattern>/*</url-pattern>
30   </filter-mapping>
31   
32   <!-- Spring mvc分发servlet -->
33   <servlet>
34     <servlet-name>dispatcher</servlet-name>
35     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
36     <init-param>
37       <param-name>contextConfigLocation</param-name>
38       <param-value>classpath:applicationContext-mvc.xml</param-value>
39     </init-param>
40     <load-on-startup>1</load-on-startup>
41   </servlet>
42   
43   <servlet-mapping>
44     <servlet-name>dispatcher</servlet-name>
45     <url-pattern>/</url-pattern>
46   </servlet-mapping>
47   
48   <!-- 欢迎页,默认进入index controller -->
49   <welcome-file-list>
50     <welcome-file>/</welcome-file>
51   </welcome-file-list>
52 </web-app>

完成上面步骤,那么配置就完成了,现在就可以创建对应的包,开始编写代码了。