Spring Web MVC 简单框架的搭建
按:记录一下初学的 spring web mvc 简单框架的搭建过程。
0. 项目总体结构
项目由maven工具管理
demo-system |-- demo-system-module-mvc | |-- src | | |-- main | | | |-- java | | | |-- resources | | | | |-- sqlMapper | | | | | |-- *.xml | |-- pom.xml |-- demo-system-module-web | |-- src | | |-- main | | | |-- java | | | |-- logs | | | |-- resources | | | | |-- config | | | | | |-- jdbcConfig.properties | | | | |-- applicationContext.xml | | | | |-- applicationContext-db.xml | | | |-- webapp | | | | |-- WEB-INF | | | | | |-- web.xml | |-- pom.xml |-- pom.xml
涉及到的技术主要包括:spring web mvc; mybatis; druid(Oracle); logback。JDK版本为1.8.0_191。
- 项目配置的POM文件
1.1demo-system.pom.xml
<!--spring相关-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.8</version>
</dependency>
<!--数据库连接相关-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4.0</version>
</dependency>
<!--Mybatis相关-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!--日志记录相关-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
1.2 demo-system-module-web.pom.xml
<!--json映射相关-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.1</version>
</dependency>
- web配置文件
demo-system-module-web.src.main.webapp.WEB-INF.web.xml
<!--SpringMVCDispathcerServlet前端控制器-->
<servlet>
<servlet-name>springMvcDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!--指定springMVC的配置文件路径-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext*.xml</param-value>
</init-param>
<!--在Web应用启动时立即加载,数字越小,越先加载-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvcDispatcher</servlet-name>
<!--监听当前域的指定类型的请求-->
<url-pattern>*.action</url-pattern>
<url-pattern>.do</url-pattern>
</servlet-mapping>
<!--Druid连接池,启用Web监控统计功能-->
<servlet>
<servlet-name>druidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>loginUsername</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>loginPassword</param-name>
<param-value>admin</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>druidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
- jdbc配置文件
demo-system-module-web.src.main.resources.config.jdbcConfig.properties
jdbc.url=jdbc:oracle:thin:@192.168.0.1:3306:root
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.username=root
jdbc.password=root
# 初始化时建立物理连接的个数
jdbc.initialSize=1
# 最小连接数
jdbc.minIdle=1
# 允许最大连接数,超过后在队列中等候,最大的等待请求数由 maximun-new-connections决定
jdbc.maxActive=60
# 最大等待时间
jdbc.maxWait=5000
# SQL执行超过一定时间则记录为慢SQL
jdbc.dialect=oracle
jdbc.slowSqlMillis=3000
# 慢SQL统计日志输出
jdbc.logSlowSwql=false
# 合并SQL统计
jdbc.mergeSql=false
# 检测需要关闭的空闲连接的间隔时间
jdbc.timeBetweenEvictionRunsMillis=120000
- 数据库Druid配置
demo-system-module-web.src.main.resources.applicationContext-db.xml
<!--配置Druid连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="initialSize" value="${jdbc.initialSize}"/>
<property name="minIdle" value="${jdbc.minIdle}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="maxWait" value="${jdbc.maxWait}"/>
</bean>
<!--配置数据库会话连接-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:sqlMapper/**/*.xml"/>
</bean>
<!--配置Mapper映射-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.*"/>
</bean>
- 根配置文件
demo-system-module-web.src.main.resources.applicationContext.xml
<!--加载配置文件-->
<context:property-placeholder location="classpath*:/config/jdbcConfig.properties"/>
<!--配置annotation类型的处理器映射器和处理器适配器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/> <!--配置页面路径-->
<property name="suffix" value=".jsp"/> <!--文件以value值结尾-->
</bean>
<!--启动包扫描功能,配置扫描的路径-->
<context:component-scan base-package="com.*"/>
<!--启用注解驱动的springMVC功能,注册请求url和注解POJO类方法的映射-->
<mvc:annotation-driven/>
结语
这里只是记录了关键的具体配置,其余的内容可以轻松地通过其他网络文章获得,其中各个依赖的版本在顺利运行前不建议更改,有小概率会发生一些奇怪的错误。

浙公网安备 33010602011771号