web.xml 简记
web.xml (tomcat启动时读取的配置文件)
首页配置
<welcome-file-list>:index.jsp
servlet配置(<servlet>和<servletmapping>配对出现)
<servlet>
servlet名称
servlet类包路径
servlet初始化参数
参数key:contextConfigLocation
参数值:classpath:spring-servlet.xml,指定servlet初始化的配置文件
指定tomcat容器启动时是否实例化本servlet并调用init方法
<servletmapping>
servlet名称
servlet的url匹配
容器参数配置<context-param>
参数key:contextConfigLocation
参数值:classpath:applicationContext.xml,指定容器参数的配置文件
spring框架监听器配置<listener>
org.springframework.web.context.ContextLoaderListener
////////////////////////////////////////////////////////////////////////////////////////////////////
spring-servlet.xml (指定servlet初始化的配置文件)
启动注解驱动
mvc:annotation-driven
启动包扫描
context:component-scan
添加对模型视图名称的解析
viewClass、prefix、suffix
////////////////////////////////////////////////////////////////////////////////////////////////////
applicationContext.xml (指定容器参数的配置文件)
上下文注解配置
context:annotation-config
启动包扫描
context:component-scan
导入mybatis的配置文件
<import>:spring-mybatis.xml
////////////////////////////////////////////////////////////////////////////////////////////////////
spring-mybatis.xml (数据库配置)
指定配置业务sql的配置文件
classpath:mapper/*.xml
配置事物管理
org.springframework.jdbc.datasource.DataSourceTransactionManager
web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <! DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > < web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> < display-name >Archetype Created Web Application</ display-name > < welcome-file-list > < welcome-file >/index.jsp</ welcome-file > </ welcome-file-list > <!-- Spring MVC配置 --> < servlet > < servlet-name >spring</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class > <!--Spring-servlet.xml config--> < init-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:spring-servlet.xml</ param-value > </ init-param > <!-- load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法) --> < load-on-startup >1</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >spring</ servlet-name > < url-pattern >/</ url-pattern > </ servlet-mapping > <!--spring listener config--> < context-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:applicationContext.xml</ param-value > </ context-param > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > </ web-app > |
index.jsp
1 2 3 4 5 | < html > < body > < h2 >Hello World!</ h2 > </ body > </ html > |
spring-servlet.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <? 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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射--> < mvc:annotation-driven > </ mvc:annotation-driven > <!-- 启动包扫描功能,以便注册带有@Controllers、@service、@repository、@Component等注解的类成为spring的bean --> < context:component-scan base-package="Controllers" /> <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 --> < bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> < property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> < property name="prefix" value="/"/> <!-- 前缀 --> < property name="suffix" value=".jsp"/> <!-- 后缀 --> </ bean > <!-- 访问静态文件(jpg,js,css)的方法 --> <!--<mvc:resources location="/files/" mapping="/files/**" />--> <!--<mvc:resources location="/scripts/" mapping="/scripts/**" />--> <!--<mvc:resources location="/styles/" mapping="/styles/**" />--> <!--<mvc:resources location="/Views/" mapping="/Views/**" />--> </ beans > |
applicationContext.xml
1 2 3 4 5 6 7 8 9 10 11 12 | <? 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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> < context:annotation-config /> <!-- 配置component所在的包,自动加载需要管理的Bean --> < context:component-scan base-package="Service,Dao" /> < import resource="spring-mybatis.xml" /> </ beans > |
spring-mybatis.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <? xml version="1.0" encoding="UTF-8"?> < beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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"> < bean id="configProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> < property name="locations"> < list > < value >classpath:jdbc.properties</ value > </ list > </ property > </ bean > <!-- 配置数据源 --> < bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> < property name="driverClass" value="${jdbc.driverClassName}"/> < property name="jdbcUrl" value="${jdbc.url}"/> < property name="user" value="${jdbc.username}"/> < property name="password" value="${jdbc.password}"/> < property name="minPoolSize" value="${c3p0.minPoolSize}"/> < property name="acquireIncrement" value="${c3p0.acquireIncrement}"/> < property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/> < property name="acquireRetryDelay" value="${c3p0.acquireRetryDelay}"/> < property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/> < property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/> < property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}"/> < property name="maxIdleTime" value="${c3p0.maxIdleTime}"/> < property name="testConnectionOnCheckin" value="${c3p0.testConnectionOnCheckin}"/> < property name="maxStatements" value="${c3p0.maxStatements}"/> < property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}"/> < property name="unreturnedConnectionTimeout" value="${c3p0.unreturnedConnectionTimeout}"/> </ bean > <!-- 配置mybatisSqlSessionFactoryBean --> < bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> < property name="dataSource" ref="dataSource"/> < property name="mapperLocations" value="classpath:mapper/*.xml"/> </ bean > <!-- 配置mybatis mapper接口 --> < bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> < property name="basePackage" value="Dao"/> <!--<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>--> </ bean > <!-- 配置事务管理器 --> < bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> < property name="dataSource" ref="dataSource"/> </ bean > </ beans > |
StudentMapper.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | <? 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="Dao.StudentMapper"> < resultMap id="BaseResultMap" type="Entity.Student"> < id column="Uid" jdbcType="BINARY" property="uid" /> < result column="Name" jdbcType="VARCHAR" property="name" /> < result column="Age" jdbcType="INTEGER" property="age" /> < result column="ClassId" jdbcType="INTEGER" property="classid" /> </ resultMap > < sql id="Base_Column_List"> Uid, Name, Age, ClassId </ sql > < select id="selectByPrimaryKey" parameterType="byte[]" resultMap="BaseResultMap"> select < include refid="Base_Column_List" /> from student where Uid = #{uid,jdbcType=BINARY} </ select > < select id="selectByCondition" parameterType="Entity.Student" resultMap="BaseResultMap"> SELECT < include refid="Base_Column_List"/> from student < where > 1=1 < if test="uid != null"> and Uid=#{uid,jdbcType=BINARY} </ if > < if test="name != null"> and Name=#{name,jdbcType=VARCHAR} </ if > < if test="age != null"> and Age=#{age,jdbcType=INTEGER} </ if > < if test="classid != null"> and ClassId=#{classid,jdbcType=INTEGER} </ if > </ where > </ select > < delete id="deleteByPrimaryKey" parameterType="byte[]"> delete from student where Uid = #{uid,jdbcType=BINARY} </ delete > < insert id="insert" parameterType="Entity.Student"> insert into student (Uid, Name, Age, ClassId) values (#{uid,jdbcType=BINARY}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, #{classid,jdbcType=INTEGER}) </ insert > < insert id="insertSelective" parameterType="Entity.Student"> insert into student < trim prefix="(" suffix=")" suffixOverrides=","> < if test="uid != null"> Uid, </ if > < if test="name != null"> Name, </ if > < if test="age != null"> Age, </ if > < if test="classid != null"> ClassId, </ if > </ trim > < trim prefix="values (" suffix=")" suffixOverrides=","> < if test="uid != null"> #{uid,jdbcType=BINARY}, </ if > < if test="name != null"> #{name,jdbcType=VARCHAR}, </ if > < if test="age != null"> #{age,jdbcType=INTEGER}, </ if > < if test="classid != null"> #{classid,jdbcType=INTEGER}, </ if > </ trim > </ insert > < update id="updateByPrimaryKeySelective" parameterType="Entity.Student"> update student < set > < if test="name != null"> Name = #{name,jdbcType=VARCHAR}, </ if > < if test="age != null"> Age = #{age,jdbcType=INTEGER}, </ if > < if test="classid != null"> ClassId = #{classid,jdbcType=INTEGER}, </ if > </ set > where Uid = #{uid,jdbcType=BINARY} </ update > < update id="updateByPrimaryKey" parameterType="Entity.Student"> update student set Name = #{name,jdbcType=VARCHAR}, Age = #{age,jdbcType=INTEGER}, ClassId = #{classid,jdbcType=INTEGER} where Uid = #{uid,jdbcType=BINARY} </ update > </ mapper > |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 在 VS Code 中,一键安装 MCP Server!
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析