一、基于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&useUnicode=true&characterEncoding=UTF-8&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>
完成上面步骤,那么配置就完成了,现在就可以创建对应的包,开始编写代码了。