记录一下,以便不时之需。
pom.xml
1 <properties> 2 <servlet-api.version>2.5servlet-api.version> 3 <spring.version>4.2.5.RELEASEspring.version> 4 <aspectjweaver.version>1.8.9aspectjweaver.version> 5 6 <mybatis.version>3.4.0mybatis.version> 7 <mybatis.spring.version>1.3.0mybatis.spring.version> 8 9 10 <logback-classic.version>1.1.7logback-classic.version> 11 <logback-ext-spring.version>0.1.4logback-ext-spring.version> 12 <jcl-over-slf4j.version>1.7.21jcl-over-slf4j.version> 13 14 15 <druid.version>1.0.18druid.version> 16 <mysql-connector-java.version>5.1.38mysql-connector-java.version> 17 18 19 <shiro.version>1.2.2shiro.version> 20 21 22 <junit.version>4.12junit.version> 23 properties> 24 25 <dependencies> 26 <dependency> 27 <groupId>javax.servletgroupId> 28 <artifactId>servlet-apiartifactId> 29 <version>${servlet-api.version}version> 30 <scope>providedscope> 31 dependency> 32 33 <dependency> 34 <groupId>jstlgroupId> 35 <artifactId>jstlartifactId> 36 <version>1.2version> 37 dependency> 38 <dependency> 39 <groupId>javax.mailgroupId> 40 <artifactId>mailartifactId> 41 <version>1.4.7version> 42 dependency> 43 44 <dependency> 45 <groupId>org.aspectjgroupId> 46 <artifactId>aspectjweaverartifactId> 47 <version>${aspectjweaver.version}version> 48 dependency> 49 <dependency> 50 <groupId>org.springframeworkgroupId> 51 <artifactId>spring-coreartifactId> 52 <version>${spring.version}version> 53 dependency> 54 55 <dependency> 56 <groupId>org.springframeworkgroupId> 57 <artifactId>spring-webartifactId> 58 <version>${spring.version}version> 59 dependency> 60 <dependency> 61 <groupId>org.springframeworkgroupId> 62 <artifactId>spring-oxmartifactId> 63 <version>${spring.version}version> 64 dependency> 65 <dependency> 66 <groupId>org.springframeworkgroupId> 67 <artifactId>spring-txartifactId> 68 <version>${spring.version}version> 69 dependency> 70 71 <dependency> 72 <groupId>org.springframeworkgroupId> 73 <artifactId>spring-jdbcartifactId> 74 <version>${spring.version}version> 75 dependency> 76 77 <dependency> 78 <groupId>org.springframeworkgroupId> 79 <artifactId>spring-webmvcartifactId> 80 <version>${spring.version}version> 81 dependency> 82 <dependency> 83 <groupId>org.springframeworkgroupId> 84 <artifactId>spring-aopartifactId> 85 <version>${spring.version}version> 86 dependency> 87 88 <dependency> 89 <groupId>org.springframeworkgroupId> 90 <artifactId>spring-context-supportartifactId> 91 <version>${spring.version}version> 92 dependency> 93 94 <dependency> 95 <groupId>org.springframeworkgroupId> 96 <artifactId>spring-testartifactId> 97 <version>${spring.version}version> 98 dependency> 99 <dependency> 100 <groupId>org.mybatisgroupId> 101 <artifactId>mybatisartifactId> 102 <version>${mybatis.version}version> 103 dependency> 104 <dependency> 105 <groupId>org.mybatisgroupId> 106 <artifactId>mybatis-springartifactId> 107 <version>${mybatis.spring.version}version> 108 dependency> 109 110 111 112 <dependency> 113 <groupId>ch.qos.logbackgroupId> 114 <artifactId>logback-classicartifactId> 115 <version>${logback-classic.version}version> 116 dependency> 117 <dependency> 118 <groupId>org.logback-extensionsgroupId> 119 <artifactId>logback-ext-springartifactId> 120 <version>${logback-ext-spring.version}version> 121 dependency> 122 <dependency> 123 <groupId>org.slf4jgroupId> 124 <artifactId>jcl-over-slf4jartifactId> 125 <version>${jcl-over-slf4j.version}version> 126 dependency> 127 128 129 130 <dependency> 131 <groupId>com.alibabagroupId> 132 <artifactId>druidartifactId> 133 <version>${druid.version}version> 134 dependency> 135 <dependency> 136 <groupId>mysqlgroupId> 137 <artifactId>mysql-connector-javaartifactId> 138 <version>${mysql-connector-java.version}version> 139 dependency> 140 141 142 143 <dependency> 144 <groupId>junitgroupId> 145 <artifactId>junitartifactId> 146 <version>${junit.version}version> 147 <scope>testscope> 148 dependency> 149 150 151 152 <dependency> 153 <groupId>com.fasterxml.jackson.coregroupId> 154 <artifactId>jackson-coreartifactId> 155 <version>2.1.0version> 156 dependency> 157 <dependency> 158 <groupId>com.fasterxml.jackson.coregroupId> 159 <artifactId>jackson-databindartifactId> 160 <version>2.1.0version> 161 dependency> 162 <dependency> 163 <groupId>com.fasterxml.jackson.coregroupId> 164 <artifactId>jackson-annotationsartifactId> 165 <version>2.1.0version> 166 dependency> 167 <dependency> 168 <groupId>com.alibabagroupId> 169 <artifactId>fastjsonartifactId> 170 <version>1.2.9version> 171 dependency> 172 173 174 175 176 <dependency> 177 <groupId>org.apache.shirogroupId> 178 <artifactId>shiro-coreartifactId> 179 <version>1.2.2version> 180 dependency> 181 <dependency> 182 <groupId>org.apache.shirogroupId> 183 <artifactId>shiro-webartifactId> 184 <version>1.2.2version> 185 dependency> 186 <dependency> 187 <groupId>org.apache.shirogroupId> 188 <artifactId>shiro-springartifactId> 189 <version>1.2.2version> 190 dependency> 191 192 193 <dependency> 194 <groupId>commons-fileuploadgroupId> 195 <artifactId>commons-fileuploadartifactId> 196 <version>1.2.1version> 197 dependency> 198 <dependency> 199 <groupId>commons-iogroupId> 200 <artifactId>commons-ioartifactId> 201 <version>2.5version> 202 dependency> 203 204 205 206 <dependency> 207 <groupId>org.apache.poigroupId> 208 <artifactId>poi-ooxmlartifactId> 209 <version>3.9version> 210 dependency> 211 212 213 214 dependencies> 215 216 <profiles> 217 <profile> 218 <id>jdk16id> 219 <activation> 220 <activeByDefault>trueactiveByDefault> 221 <jdk>1.6jdk> 222 activation> 223 <properties> 224 <maven.compiler.source>1.6maven.compiler.source> 225 <maven.compiler.target>1.6maven.compiler.target> 226 <maven.compiler.compilerVersion>1.6maven.compiler.compilerVersion> 227 <maven.compiler.encoding>UTF-8maven.compiler.encoding> 228 properties> 229 profile> 230 profiles> 231 232 <build> 233 <finalName>gzwlwfinalName> 234 <resources> 235 <resource> 236 <directory>src/main/javadirectory> 237 <includes> 238 <include>**/*.xmlinclude> 239 includes> 240 resource> 241 <resource> 242 <directory>src/main/resourcesdirectory> 243 resource> 244 resources> 245 <plugins> 246 <plugin> 247 <artifactId>maven-compiler-pluginartifactId> 248 <configuration> 249 <source>1.6source> 250 <target>1.6target> 251 <encoding>UTF-8encoding> 252 configuration> 253 plugin> 254 255 <plugin> 256 <groupId>org.eclipse.jettygroupId> 257 <artifactId>jetty-maven-pluginartifactId> 258 <version>9.3.7.v20160115version> 259 <configuration> 260 <webApp> 261 <contextPath>/contextPath> 262 <descriptor>${basedir}/src/main/webapp/WEB-INF/web.xmldescriptor> 263 webApp> 264 <stopKey>exitstopKey> 265 <stopPort>9091stopPort> 266 <webAppSourceDirectory>${project.basedir}/src/main/webappwebAppSourceDirectory> 267 <scanIntervalSeconds>0scanIntervalSeconds> 268 <httpConnector> 269 <port>8080port> 270 httpConnector> 271 configuration> 272 plugin> 273 274 <plugin> 275 <groupId>org.codehaus.mojogroupId> 276 <artifactId>tomcat-maven-pluginartifactId> 277 <version>1.1version> 278 <configuration> 279 <path>/path> 280 <port>8080port> 281 <uriEncoding>UTF-8uriEncoding> 282 <warFile>${project.build.directory}/${project.build.finalName}.warwarFile> 283 configuration> 284 plugin> 285 plugins> 286 287 build>
jdbc.properties
## MySqlConfig
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
logback.xml
xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="true" scanPeriod="1000 seconds"> <timestamp key="date" datePattern="yyyyMMdd" /> <appender name="Console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%d{yyyy-MM-dd HH:mm:ss} %level %c:%L]\n%msg%n\npattern> encoder> appender> <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>./logs/ssm.logFile> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern> ./logs/ssm.%d{yyyy-MM-dd}.log FileNamePattern> <MaxHistory>10MaxHistory> rollingPolicy> <encoder> <pattern>[%d{yyyy-MM-dd HH:mm:ss} %level %c:%L]\n%msg%n\npattern> encoder> appender> <appender name="Database" class="ch.qos.logback.classic.db.DBAppender"> <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> <dataSource class="com.alibaba.druid.pool.DruidDataSource"> <driverClass>com.mysql.jdbc.DriverdriverClass> <url>jdbc:mysql://127.0.0.1:3306/testurl> <user>rootuser> <password>rootpassword> dataSource> connectionSource> appender> <root level="DEBUG"> <appender-ref ref="Console" /> root> <logger name="org.springframework" level="ERROR" /> <logger name="org.apache.shiro" level="OFF" /> configuration>
mybatis-config.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> <settings> <setting name="cacheEnabled" value="true" /> <setting name="lazyLoadingEnabled" value="true" /> <setting name="multipleResultSetsEnabled" value="true" /> <setting name="useColumnLabel" value="true" /> <setting name="defaultExecutorType" value="REUSE" /> <setting name="defaultStatementTimeout" value="25000" /> settings> configuration>
spring-framework.xml
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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <aop:aspectj-autoproxy proxy-target-class="true" /> <context:component-scan base-package="com.runnet"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> context:component-scan> beans>
servlet-context.xml
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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"> <mvc:annotation-driven /> <context:component-scan base-package="org.jeeweb.controller" /> <mvc:resources mapping="/resources/**" location="/resources/" /> <mvc:resources mapping="/css/**" location="/css/" /> <mvc:resources mapping="/images/**" location="/images/" /> <mvc:resources mapping="/js/**" location="/js/" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" /> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> list> property> bean> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8value> <value>text/html;charset=UTF-8value> <value>application/json;charset=UTF-8value> list> property> bean> mvc:message-converters> mvc:annotation-driven> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="32505856" /> <property name="maxInMemorySize" value="4096" /> bean> beans>
app-datasource.xml
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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd"> <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> bean> <bean id="sqlSessionFactory" class="org.jeeweb.core.mybatisplus.spring.MybatisSqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="mapperLocations" value="classpath:org/jeeweb/**/dao/mapper/*Mapper.xml" /> <property name="plugins"> <array> <bean id="paginationInterceptor" class="org.jeeweb.core.mybatisplus.plugins.PaginationInterceptor"> <property name="dialectType" value="mysql" /> bean> array> property> bean> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.jeeweb.dao" /> bean> beans>
app-transaction.xml
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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd"> <context:component-scan base-package="org.jeeweb.service" /> <tx:annotation-driven transaction-manager="transactionManager" /> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> bean> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="select*" read-only="true" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception" /> <tx:method name="*" propagation="REQUIRED" /> tx:attributes> tx:advice> <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* com.runnet.*.service.*.*(..))"/> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice"/> aop:config> beans>
app-shiro.xml
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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="myRealm" class="org.jeeweb.framework.authority.ShiroDataBaseRealm" /> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="myRealm" /> <property name="cacheManager" ref="cacheManager" /> bean> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/targetToLogin.do" /> <property name="successUrl" value="/main.do" /> <property name="unauthorizedUrl" value="/denied.do" /> <property name="filterChainDefinitions"> <value> /resources/**=anon /login.do=anon /targetToLogin.do=anon /doLogin.do=anon /index.jsp=anon /** = authc value> property> bean> <bean id="cacheManager" class="org.apache.shiro.cache.MemoryConstrainedCacheManager" /> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" /> beans>
web.xml
contextConfigLocation
classpath:spring/spring-framework.xml,classpath:spring/app-*.xml
logbackConfigLocation
classpath:logback.xml
ch.qos.logback.ext.spring.web.LogbackConfigListener
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
springServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/servlet-context.xml
1
springServlet
*.do
druidStatView
com.alibaba.druid.support.http.StatViewServlet
druidStatView
/druid/*
shiroFilter
org.springframework.web.filter.DelegatingFilterProxy
shiroFilter
/*
index.jsp