系列文章目录
提示:记录SSM 项目的配置文件配置步骤
可以创建配置模板,减少代码量,但是必须了解每个配置的作用
一、创建数据库和表单
CREATE DATABASE /*!32312 IF NOT EXISTS*/`crm` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `crm`;
/*Table structure for table `account` */
DROP TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(20) DEFAULT NULL COMMENT '姓名',
`pwd` varchar(40) DEFAULT NULL COMMENT '密码',
`img_url` varchar(200) DEFAULT 'default.png' COMMENT '头像地址',
`create_time` datetime DEFAULT NULL COMMENT '注册时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`role` int(11) DEFAULT NULL COMMENT '角色:1超级管理员,0普通管理员',
`status` int(11) DEFAULT NULL COMMENT '状态: 1启用,0禁用',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
/*Data for the table `account` */
insert into `account`(`id`,`username`,`pwd`,`img_url`,`create_time`,`update_time`,`role`,`status`) values (1,'admin','c2f365c379ea6da2c2e42675fae561ac','default.png','2022-06-17 11:02:29','2022-06-21 23:08:43',1,1),(2,'lisi','c2f365c379ea6da2c2e42675fae561ac','default.png','2021-06-17 11:02:50','2022-06-22 07:35:23',0,1),(3,'zhangsan','c2f365c379ea6da2c2e42675fae561ac','default.png','2022-06-18 16:27:14',NULL,0,0),(4,'wangwu','c2f365c379ea6da2c2e42675fae561ac','default.png','2022-06-20 14:31:05',NULL,0,1);
/*Table structure for table `dept` */
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(20) DEFAULT NULL COMMENT '部门名称',
`loc` varchar(200) DEFAULT NULL COMMENT '部门地址',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
/*Data for the table `dept` */
insert into `dept`(`id`,`name`,`loc`) values (1,'Java开发部','武汉市江夏区久阳科技园5楼'),(2,'Java研发部','长沙市芙蓉区鲁巷广场4楼'),(3,'UI部','石家庄市石头区石头广场3楼'),(7,'JS开发部','石家庄市石头区石头广场3楼'),(8,'人力资源','广东省佛山市耀阳区万达广场'),(9,'这里是小卖部','小卖部小卖部小卖部小卖部');
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(20) DEFAULT NULL COMMENT '客户姓名',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`sex` varchar(2) DEFAULT NULL COMMENT '1男、0女',
`tel` varchar(20) DEFAULT NULL COMMENT '手机',
`sal` float(10,2) DEFAULT NULL COMMENT '薪资',
`profession` varchar(2) DEFAULT NULL COMMENT '1攻城狮、2程序猿、3,码龙',
`address` varchar(200) DEFAULT NULL COMMENT '客户住址',
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
`dept_id` bigint(20) DEFAULT NULL COMMENT '部门编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
/*Data for the table `user` */
insert into `user`(`id`,`username`,`birthday`,`sex`,`tel`,`sal`,`profession`,`address`,`remark`,`dept_id`) values (1,'大骚跨','2020-03-08 00:00:00','1','18812342278',2000.00,'3','湖北省武汉市江夏区光谷大道','哈哈',2),(2,'凤姐的姐我拼命的写','2020-03-15 00:00:00','0','13887654321',30004.00,'1','湖北省武汉市江夏区光谷大道汤逊湖街道','呜呼呼',2),(5,'傻了','2020-03-12 00:00:00','0','13812345699',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(7,'阿达','2020-03-12 00:00:00','1','13812345699',300023.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(8,'大根儿','2020-03-12 00:00:00','0','15812345699',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(9,'雪亿雕','2020-03-10 00:00:00','0','13812345690',5000.00,'2','湖北省武汉市江夏区光谷','哈哈',3),(10,'叶仁界','2020-03-12 00:00:00','1','13812312312',30000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(11,'胡图图','2010-03-12 00:00:00','1','13812345749',30000.00,'3','翻斗大街翻斗花园翻斗小区5号','哈哈',2),(12,'小丁丁的丁丁','2020-03-12 00:00:00','0','13812345690',999999.00,'2','湖北省武汉市江夏区光谷大道','我是小丁丁的丁丁',2),(13,'老丁丁','2020-03-17 00:00:00','1','13865748984',3000.00,'2','湖北省武汉市江夏区光谷大道久阳科技园','真的够细',3),(14,'雪亿','2020-03-11 00:00:00','0','13812345690',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(15,'吴顺意','2020-03-12 00:00:00','0','13812345766',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(16,'旺仔','2010-05-12 00:00:00','1','13812345128',2000.00,'3','旺旺碎冰冰旺旺小小酥','哈哈',2),(17,'海绵宝宝','2020-03-12 00:00:00','1','13935647890',3000.00,'2','湖北省武汉市江夏区光谷大道','蟹黄堡真好吃',2),(18,'雪亿','2020-03-11 00:00:00','0','13812345695',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(19,'小鸟','2000-03-12 00:00:00','1','13512345666',30000.00,'1','湖北省武汉市江夏区武鸣校区','哈哈',1),(20,'凤姐的爷','2020-03-12 00:00:00','0','13838383838',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(21,'子龙','2020-03-11 00:00:00','0','13812345695',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(22,'吴顺意','2020-03-12 00:00:00','0','13817345766',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(23,'超人不想飞','2020-03-12 00:00:00','1','15812345888',3000.00,'2','湖北省武汉市江夏区光谷大道','交接',1),(24,'小小鸟','2020-03-12 00:00:00','0','15915915915',8888.00,'2','湖北省武汉市江夏区纸坊','哈哈',2),(25,'壮壮哥','2009-03-12 00:00:00','1','13813245749',35000.00,'3','翻斗大街翻斗花园翻斗小区7号','哈哈',2),(26,'东兴耀阳','2020-03-11 00:00:00','0','13812345695',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(27,'丁丁','2020-03-08 00:00:00','1','13865748988',50000.00,'1','湖北省武汉市江夏区光谷大道久阳科技园','真的够细',1),(28,'丁丁','2020-03-12 00:00:00','1','13814523679',30000.00,'1','湖北省武汉市江夏区光谷大道','哈哈',2),(29,'耀阳','2020-03-11 00:00:00','0','13812345695',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(30,'测试数据一','2050-03-12 00:00:00','0','17648522861',1.00,'2','湖北省武汉市江夏区光谷大大大道','remark',3),(31,'继康','2020-03-12 00:00:00','1','15857522736',2000.00,'3','湖北省武汉市江夏区光谷大道','我爱老丁',3),(32,'阿达的哥','2020-03-12 00:00:00','1','13869874563',300023.00,'2','湖北省武汉市江夏区光谷大道','哈哈',1),(33,'汪汪','2020-03-11 00:00:00','0','13812345695',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(34,'王钰隆','2020-06-22 00:00:00','0','13833344455',6000.00,'2','湖北省襄阳市蜜汁汉堡店','我是老八',2),(35,'翠花','1970-03-12 00:00:00','0','13718345666',999999.00,'3','湖北省武汉市江夏区无赖小区','嘿嘿',2),(36,'老根儿','2020-03-12 00:00:00','0','15812345699',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(37,'嘤嘤嘤','2020-03-12 00:00:00','1','15812345999',3000.00,'2','湖北省武汉市江夏区光谷大道','草',2),(38,'小姐姐','2000-03-12 00:00:00','0','13812345666',9999.00,'2','湖北省武汉市江夏区光谷大道大唐沐足','哈哈',1),(39,'丁真','2020-03-12 00:00:00','0','13574185269',3000.00,'2','萨达撒飒飒阿打算打11','哈哈哈哈',2),(40,'爷的凤姐','2020-03-12 00:00:00','0','13838383837',3000.00,'2','湖北省武汉市江夏区光谷大道','哈哈',2),(41,'凤姐的奶','2020-03-12 00:00:00','0','13812345625',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(42,'我是林北','2020-03-11 00:00:00','0','13812345695',3000.00,'2','湖北省武汉市江夏区光谷','哈哈',2),(43,'赵薇杨','2020-03-12 00:00:00','0','13743274590',2000.00,'1','安徽省宣城市宁国市南霁翔','哈哈',1),(44,'希瓦娜','2020-03-12 00:00:00','0','13814523679',30000.00,'1','湖北省武汉市江夏区光谷大道','哈哈',2),(45,'呆呆','2020-03-12 00:00:00','0','13869874563',6666.00,'2','湖北省武汉市江夏区光谷大道','哈哈',1),(46,'健康哥哥','2009-03-12 00:00:00','1','13813245549',2000.00,'1','翻斗大街翻斗花园翻斗小区阳光幼儿园','哈哈',2),(47,'顶针巨毒','2020-03-12 00:00:00','0','15812345699',3000.00,'3','湖北省武汉市江夏区光谷大道','哈哈',2),(48,'汪武阳','1970-03-12 00:00:00','1','13718345566',5.10,'1','湖北省武汉市江夏区无赖小区','嘿嘿',2);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
思路 : 预估有三个表 user
, account
, dept
,主键都设置为自增
二、导入依赖
spring+springmvc相关的依赖
- spring-webmvc
- spring-jdbc
- spring-context-support
- spring-aspects
mybatis 核心包
- mybatis
mybatis分页插件
- pagehelper
spring和mybatis集合包
- mybatis-spring
mysql驱动包
- mysql-connector-java
log4j-core日志
- log4j-core
- commons-logging
- log4j
引入lombok
- lombok
引入jackson包
- jackson-databind
- javax.servlet-api
引入hutool工具类
- hutool-all
文件上传包
- commons-fileupload
引入druid数据库连接池
- druid
引入hibernate数据校验
- hibernate-validator
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.powernode</groupId>
<artifactId>SSMProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SSMProject</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<!-- 统一配置版本 防止依赖包之间有冲突-->
<spring.version>5.3.4</spring.version>
<mybatis.version>3.5.7</mybatis.version>
<pageHelper.version>5.2.0</pageHelper.version>
<mysql.version>5.1.49</mysql.version>
<mybatis-spring.version>2.0.6</mybatis-spring.version>
<log4j-core.version>2.14.1</log4j-core.version>
<logging.version>1.2</logging.version>
<log4j.version>1.2.17</log4j.version>
<lombok.version>1.18.20</lombok.version>
<jackson.version>2.12.5</jackson.version>
<fileUpload.version>1.4</fileUpload.version>
<servlet.version>3.0.1</servlet.version>
<hutool.version>5.7.11</hutool.version>
<druid.version>1.2.8</druid.version>
<hibernate-validator.version>6.2.3.Final</hibernate-validator.version>
</properties>
<!-- spring+springmvc相关的依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- aop 面向切面 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pageHelper.version}</version>
</dependency>
<!-- spring和mybatis集合包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j-core.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${logging.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- 引入lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- 引入jackson包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
</dependency>
<!-- 引入hutool工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- 文件上传包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${fileUpload.version}</version>
</dependency>
<!-- 引入druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- 引入hibernate数据校验 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator.version}</version>
</dependency>
</dependencies>
<!-- 加载资源 *.xml **/*.xml ==哪一个包下面的哪一个类下面的哪一个xml-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
</project>
三 、springmvc.xml
1、表头
<?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.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
</beans>
2、开启组件扫描 ,扫描控制层
<!-- 配置组件扫描,扫描控制层 -->
<context:component-scan base-package="com.powernode.controller"/>
3、 开启注解
<!-- 开启mvc注解 -->
<mvc:annotation-driven/>
4、配置视图解析器
<!-- 配置视图解析器:InternalResourceViewResolver -->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".html"></property>
</bean>
5、 配置文件上传
<!-- 配置文件上传:CommonsMultipartResolver 1m 10m-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定文件上传的编码格式 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 指定单个文件上传的大小为1M=1024*1024byte -->
<property name="maxUploadSizePerFile" value="1048576"></property>
<!-- 指定所有文件的总大小10M -->
<property name="maxUploadSize" value="10485760"></property>
</bean>
6、配置文件上传的基本属性
<!-- 配置文件上传的基本属性 路径-->
<bean id="uploadBean" class="com.powernode.common.UploadBean">
<property name="baseUrl" value="D:/07.ssm/upload"></property>
</bean>
7、配置拦截器
<!-- 配置拦截器 拦截所有,只有访问登录,登录,验证码,可以访问 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<!-- 排除登录账号的接口 -->
<mvc:exclude-mapping path="/account/getLogin.do"/>
<!-- 排除获取验证码的接口 -->
<mvc:exclude-mapping path="/captcha/**"/>
<!-- 排除访问登录页面的接口 -->
<mvc:exclude-mapping path="/forward/toLogin.do"/>
<!-- 拦截器-->
<bean class="com.powernode.interceptors.AuthInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
完整代码
<?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.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 配置组件扫描,扫描控制层 -->
<context:component-scan base-package="com.powernode.controller"/>
<!-- 开启mvc注解 -->
<mvc:annotation-driven/>
<!-- 配置视图解析器:InternalResourceViewResolver -->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".html"></property>
</bean>
<!-- 配置文件上传:CommonsMultipartResolver 1m 10m-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定文件上传的编码格式 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 指定单个文件上传的大小为1M=1024*1024byte -->
<property name="maxUploadSizePerFile" value="1048576"></property>
<!-- 指定所有文件的总大小10M -->
<property name="maxUploadSize" value="10485760"></property>
</bean>
<!-- 配置文件上传的基本属性 路径-->
<!-- <bean id="uploadBean" class="com.powernode.common.UploadBean">-->
<!-- <property name="baseUrl" value="D:/07.ssm/upload"></property>-->
<!-- </bean>-->
<!-- -->
<!-- 配置拦截器 拦截所有,只有访问登录,登录,验证码,可以访问 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<!-- 排除登录账号的接口 -->
<mvc:exclude-mapping path="/account/getLogin.do"/>
<!-- 排除获取验证码的接口 -->
<mvc:exclude-mapping path="/captcha/**"/>
<!-- 排除访问登录页面的接口 -->
<mvc:exclude-mapping path="/forward/toLogin.do"/>
<!-- 拦截器-->
<bean class="com.powernode.interceptors.AuthInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>
四 、spring-context.xml
1、表头
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
</beans>
2、 组件扫描 ,扫描业务层的实现类
<!-- 组件扫描:扫描业务层的实现类 -->
<context:component-scan base-package="com.powernode.service.impl"/>
3、引入外部数据源
<!-- 引入外部数据源 配置事务回滚-->
<context:property-placeholder location="classpath:db.properties" system-properties-mode="FALLBACK"/>
4、数据库连接池
<!-- 连接池 initialSize设置连接池大小 maxActive设置最大连接 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="initialSize" value="5"></property>
<property name="maxActive" value="50"></property>
</bean>
5、配置日志
<!-- 配置日志:Configiration cacheEnabled 开启缓存-->
<bean id="configuration" class="org.apache.ibatis.session.Configuration">
<property name="logImpl" value="org.apache.ibatis.logging.log4j.Log4jImpl"></property>
<property name="cacheEnabled " value="true"></property>
</bean>
6、配置sqlsession
<!-- 获取Sqlsession -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 局部.xml位置 -->
<property name="mapperLocations" value="classpath*:mapper/*.xml"></property>
<!-- 分页插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor"></bean>
</array>
</property>
<!-- 别名 -->
<property name="typeAliasesPackage" value="com.powernode.domain"></property>
<!-- 日志 -->
<property name="configuration" ref="configuration"></property>
</bean>
7、指定mapper 层接口存放的位置
<!-- 指定mapper层接口存放的位置 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.powernode.mapper"></property>
</bean>
8、事务
<!-- 事务 对我们的数据库的增删改 配置事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
完整代码
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 组件扫描:扫描业务层的实现类 -->
<context:component-scan base-package="com.powernode.service.impl"/>
<!-- 引入外部数据源 配置事务回滚-->
<context:property-placeholder location="classpath:db.properties" system-properties-mode="FALLBACK"/>
<!-- 连接池 initialSize设置连接池大小 maxActive设置最大连接 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="initialSize" value="5"></property>
<property name="maxActive" value="50"></property>
</bean>
<!-- 配置日志:Configiration cacheEnabled 开启缓存-->
<bean id="configuration" class="org.apache.ibatis.session.Configuration">
<property name="logImpl" value="org.apache.ibatis.logging.log4j.Log4jImpl"></property>
<!-- <property name="cacheEnabled " value="true"></property>-->
</bean>
<!-- 获取Sqlsession -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 局部.xml位置 -->
<!-- <property name="mapperLocations" value="classpath*:mapper/*.xml"></property>-->
<!-- 分页插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor"></bean>
</array>
</property>
<!-- 别名 -->
<property name="typeAliasesPackage" value="com.powernode.domain"></property>
<!-- 日志 -->
<property name="configuration" ref="configuration"></property>
</bean>
<!-- 指定mapper层接口存放的位置 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.powernode.mapper"></property>
</bean>
<!-- 事务 对我们的数据库的增删改 配置事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>
5、 web.xml
1、 默认访问首页
<!-- 默认访问的首页 -->
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
2、配置中文乱码
<!-- 配置处理中文乱码 访问springmvc-->
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<servlet-name>springmvc</servlet-name>
</filter-mapping>
3、配置druid监控sql、防火墙等
<!-- 配置druid监控sql、防火墙等 -->
<servlet>
<servlet-name>statViewServlet</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>123456</param-value>
</init-param>
<!-- 指定白名单 -->
<init-param>
<param-name>allow</param-name>
<param-value></param-value>
</init-param>
<!-- 指定黑名单 -->
<init-param>
<param-name>deny</param-name>
<param-value></param-value>
</init-param>
</servlet>
<!-- druid文件下面所有类都配置-->
<servlet-mapping>
<servlet-name>statViewServlet</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
4、配置监听器,读写spring-context.xml文件
<!-- 配置监听器:读写spring-context.xml文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
5、配置DispatcherServlet 读取springmvc.xml文件
<!-- 配置DispatcherServlet:读取springmvc.xml文件 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
6、配置404
<!-- 配置404 -->
<error-page>
<location>/error/404.html</location>
</error-page>
7、完整代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 默认访问的首页 -->
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置处理中文乱码 访问springmvc-->
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<servlet-name>springmvc</servlet-name>
</filter-mapping>
<!-- 配置druid监控sql、防火墙等 -->
<servlet>
<servlet-name>statViewServlet</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>123456</param-value>
</init-param>
<!-- 指定白名单 -->
<init-param>
<param-name>allow</param-name>
<param-value></param-value>
</init-param>
<!-- 指定黑名单 -->
<init-param>
<param-name>deny</param-name>
<param-value></param-value>
</init-param>
</servlet>
<!-- druid文件下面所有类都配置-->
<servlet-mapping>
<servlet-name>statViewServlet</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- 配置监听器:读写spring-context.xml文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置DispatcherServlet:读取springmvc.xml文件 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 配置404 -->
<error-page>
<location>/error/404.html</location>
</error-page>
</web-app>
项目结构 :
总结
提示:这里对文章进行总结:
加油打工人 wwwwwwwwwwwin!!