時間:2020/02/09
一.idea創建maven項目過慢
當我們使用idea創建maven項目時,有時候會因為需要下載的東西太多而導致項目創建過慢,通過下面方法就可以解決這個問題:
1.當項目創建進入到下面這一步時
2.點擊上圖紅框中的加號為properties中添加一個鍵值對,鍵值對的內容如下:
Name: archetypeCatalog Value: internal
3.點擊Finish,項目很快就可以創建成功。
二.模板
1.下面是是使用maven創建spring mvc項目要導入jar包的模板:
pom.xml
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring.version>5.0.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>
2.spring配置文件的模板:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:task="http://www.springframework.org/schema/task" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <context:component-scan base-package="sdnu.machi"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/pages/" p:suffix=".jsp"/> <mvc:annotation-driven/> </beans>
3.配置自定義類型轉換器的模板:
<!--配置自定義類型轉換器-->
<bean id="id名" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="自定義類型轉換器的全限定類名"/> </set> </property> </bean>
<mvc:annotation-driven conversion-service="上面自定義類型轉換器的id名"/>
4.導入文件上傳的jar包:
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
5.配置文件解析器對象
<!-- 配置文件解析器對象,要求id名稱必須是multipartResolver --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10485760"/> </bean>
6.SpringMVC跨服務器方式文件上傳需要引入的jar包
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.18.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.18.1</version> </dependency>
7.配置攔截器對象
<!-- 配置攔截器 --> <mvc:interceptors> <!-- 配置攔截器 --> <mvc:interceptor> <!-- 要攔截的具體方法 --> <mvc:mapping path="/test/*"/> <!-- 不要攔截的方法 --> <!-- <mvc:exclude-mapping path=""/>--> <!-- 配置自定義攔截器對象 --> <bean class="sdnu.machi.Interceptor.MyInterceptor"/> </mvc:interceptor> </mvc:interceptors>
8.引入MyBatis的相關依賴(只有前兩個是必須的)
<dependencies> <!-- 引入mybatis的jar包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!-- 引入mysql的jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <!-- 引入日志的jar包 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <!-- 引入單元測試的jar包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies>
9.MyBatis的配置文件<?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">
<!-- mybatis的主配置文件 --> <configuration> <!-- 配置環境 --> <environments default="mysql"> <!-- 配置MySQL的環境 --> <environment id="mysql"> <!-- 配置事務類型 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置數據源(連接池) --> <dataSource type="POOLED"> <!-- 配置連接數據庫的4個基本信息 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/eesy"/> <property name="username" value="root"/> <property name="password" value="123456789.a"/> </dataSource> </environment> </environments> <!-- 指定映射配置文件的位置,映射配置文件指的是每個dao獨立的配置文件(xml文件配置方式) --> <mappers> <mapper resource="sdnu/machi/dao/IUserDao.xml"/> </mappers>
<!-- 如果使用注解方式 -->
<!-- <mappers>
<mapper class="sdnu.machi.dao.IUserDao"/>
</mappers> -->
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 全限定類名 -->
<mapper namespace="sdnu.machi.dao.IUserDao">
<!-- 配置查詢所有(方法名) -->
<select id="findAll" resultType="sdnu.machi.bean.User">
select * from user
</select>
</mapper>
10.log4j.properties(log4j的配置文件)
# priority :debug<info<warn<error #you cannot specify every priority with different file for log4j log4j.rootLogger=debug,stdout,info,debug,warn,error #console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss a}]:%p %l%m%n #info log log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.DatePattern='_'yyyy-MM-dd'.log' log4j.appender.info.File=./src/com/hp/log/info.log log4j.appender.info.Append=true log4j.appender.info.Threshold=INFO log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n #debug log log4j.logger.debug=debug log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender log4j.appender.debug.DatePattern='_'yyyy-MM-dd'.log' log4j.appender.debug.File=./src/com/hp/log/debug.log log4j.appender.debug.Append=true log4j.appender.debug.Threshold=DEBUG log4j.appender.debug.layout=org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n #warn log log4j.logger.warn=warn log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.warn.DatePattern='_'yyyy-MM-dd'.log' log4j.appender.warn.File=./src/com/hp/log/warn.log log4j.appender.warn.Append=true log4j.appender.warn.Threshold=WARN log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n #error log4j.logger.error=error log4j.appender.error = org.apache.log4j.DailyRollingFileAppender log4j.appender.error.DatePattern='_'yyyy-MM-dd'.log' log4j.appender.error.File = ./src/com/hp/log/error.log log4j.appender.error.Append = true log4j.appender.error.Threshold = ERROR log4j.appender.error.layout = org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
三.解決表單使用post方式提交時的中文亂碼問題
在web.xml中添加spring自帶的過濾器
<filter> <filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
添加之后web.xml文件會出現錯誤,但是沒關系,項目依然可以正常運行,而且亂碼問題也得到了解決。
最后推薦一個講spring mvc框架比較好的網課,地址:https://www.bilibili.com/video/av47953244,這個網課是基於idea講的,比較不錯。