说明:该案例的开发环境是idea2017+maven3+SpringBoot1.5.9+Mybatis3+MySQL5.7
最终的案例目录结构如下所示:
一、添加依赖
在pom.xml文件中,加入springboot依赖、日志文件依赖、tomcat依赖、servlet依赖、jstl依赖、mybatis-spring-boot依赖、jdbc依赖
<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/maven-v4_0_0.xsd"> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.yunlian.springboot</groupId> <artifactId>boot-mybatis</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>boot-mybatis</name> <url>http://maven.apache.org</url> <properties> <!-- 需要让整个项目统一字符集编码,就需要设定project.build.sourceEncoding --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!--spring boot dependency--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--spring boot log4j dependency--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- Add Log4j2 Dependency --> <!--log4j.properties在springboot的高版本会无效,推荐在高版本springboot中使用log4j2--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!--添加 tomcat 的支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!-- servlet 依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <!-- 添加 JSTL 支持 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!-- mybatis-spring-boot dependency--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!-- mybatis dependency --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.3</version> </dependency> <!--mysql dependency--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.43</version> </dependency> </dependencies> <build> <finalName>boot-mybatis</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>
二、mybatis、db配置
在application.properties文件中,配置如下信息:
# 配置jsp文件的位置,默认位置为:src/main/webapp spring.mvc.view.prefix=/ # 配置jsp文件的后缀 spring.mvc.view.suffix=.jsp #Spring Boot中的乱码和编码问题 spring.http.encoding.force=true #除了常见的 http encoding,Spring Boot中还可以控制这些编码 #banner.charset #spring.freemarker.charset #server.tomcat.uri-encoding #spring.mail.default-encoding #spring.messages.encoding #spring.thymeleaf.encoding ######################################################## ###datasource ######################################################## spring.datasource.url = jdbc:mysql://localhost:3306/spring-boot spring.datasource.username = root spring.datasource.password = root spring.datasource.driverClassName = com.mysql.jdbc.Driver #spring.datasource.max-active=20 #spring.datasource.max-idle=8 #spring.datasource.min-idle=8 #spring.datasource.initial-size=10 ######################################################## ### Mybatis 配置 ######################################################## mybatis.typeAliasesPackage=com.yunlian.entity mybatis.mapperLocations=classpath:com/yunlian/dao/*.xml
三、创建UserDao接口
在dao层创建UserDao接口,并在接口上加上注解Mapper,有了Mapper注解,可以将mybatis完美的融合进springboot中:
package com.yunlian.dao; import com.yunlian.entity.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserDao { User findOne(String id); User save(User user); }
四、创建映射文件
在resources目录下面,创建与UserDao.java相同的包目录,在这目录下面创建名为UserDao.xml的映射文件,映射文件的内容如下:
<?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="com.yunlian.dao.UserDao" > <select id="findOne" resultType="user"> SELECT * FROM user WHERE id=#{id} </select> </mapper>
五、创建业务类
在service包下面创建一个UserService接口,并在service.impl包下面创建UserService接口的实现类UserServiceImpl,并在实现类中注入UserDao的bean,如下所示:
package com.yunlian.service; import com.yunlian.entity.User; public interface UserService { User getUser(); void save(User user); }
package com.yunlian.service.impl; import com.yunlian.dao.UserDao; import com.yunlian.entity.User; import com.yunlian.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserServiceImpl implements UserService{ @Autowired private UserDao userDao; @Override public User getUser() { User user = userDao.findOne("09e7b25c-12f7-43ea-a553-fb34189fce17"); return user; } @Override public void save(User user) { User u = userDao.save(user); return; } }
六、创建控制层
在controller包下面创建一个UserController类,并在这个类中注入业务类的bean,如下所示:
package com.yunlian.controller; import com.yunlian.entity.User; import com.yunlian.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("/get") @ResponseBody public User getUser() { User user = userService.getUser(); return user; } }
七、配置程序入口类
在入口程序类上加配置注解信息,如下所示:
package com.yunlian.controller; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.*; import org.springframework.boot.autoconfigure.*; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan("com.yunlian")//包名:扫描这个包下面的加了@Controller注解的类及其子包的加了@Controller注解的类,或者加了Service注解等其他组件注解的类 @MapperScan("com.yunlian.dao")// mapper 接口类扫描包配置 public class SpringBootController { public static void main(String[] args) throws Exception { //程序启动入口,一般该入口文件不写成控制层 SpringApplication.run(SpringBootController.class, args); } }
八、日志文件
在resources目录下面创建日志文件log4j2-spring.xml,其内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="INFO"> <Appenders> <Console name="SYSOUT" target="SYSTEM_OUT"> <PatternLayout patter="%d [%t] %-5p [%c] - %m%n "/> </Console> <!-- name可以自定义,作用是在Loggers中AppenderRef中使用 --> <!-- fileName定义输出文件名称(当前文件) --> <!-- filePattern定义输出文件名称(文件满足条件后自动截断,生成历史文件) --> <RollingFile name="DEBUG_ROLLING_FILE" fileName="~/logs/xxx/logs.logs" filePattern="~/logs/xxx/logs/%d{yyyy-MM-dd}-debugs.log"> <PatternLayout> <Pattern>%d [%t] %-5p [%c] - %m%n </Pattern> </PatternLayout> <!-- 文件截断的条件,具体参考文档 --> <Policies> <TimeBasedTriggeringPolicy interval="24"/> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> </RollingFile> <!-- 同一来源的Appender可以定义多个 --> <RollingFile name="ERROR_ROLLING_FILE" fileName="~/logs/xxx/logs/error-logs.logs" filePattern="~/logs/xxx/logs/%d{yyyy-MM-dd}-error.log"> <!-- 可以通过该参数来设置获取日志的权限 --> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <Pattern>%d [%t] %-5p [%c] - %m%n </Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy interval="24"/> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> </RollingFile> </Appenders> <Loggers> <Root level="debug"> <AppenderRef ref="SYSOUT"/> <AppenderRef ref="DEBUG_ROLLING_FILE"/> <AppenderRef ref="ERROR_ROLLING_FILE"/> </Root> <logger name="org.apache.http" level="ERROR" /> <!-- Spring --> <logger name="org.springframework" level="ERROR" /> <!-- mybatis loggers --> <logger name="com.ibatis" level="INFO" /> <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" /> <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" /> <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" /> <!-- sql loggers --> <logger name="java.sql.Connection" level="DEBUG" additivity="true"/> <logger name="java.sql.Statement" level="DEBUG" additivity="true" /> <logger name="java.sql.PreparedStatement" level="=debug,stdout" additivity="true"/> <logger name="java.sql.ResultSet" level="DEBUG" additivity="true"/> </Loggers> </Configuration>
九、运行访问
运行程序入口类的main,运行好后,即可访问 http://localhost:8080/user/get
可以在页面上看到返回的 json 数据
相关推荐
基于 SpringBoot + Mybatis Plus + Shiro + mysql + redis构建的智慧云智能教育平台。架构上使用完全前后端分离。 支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师在线批改...
Android+Java后端(Springboot+Mybatis)小商店项目源码+数据库+项目说明.zip 主要实现一个商城的下单、购物车、支付等基本功能,熟悉后端的开发过程,因为自己做Android的,然后想学一些后端的技术,所以Android端...
springboot+mybatis+layui的就业管理系统 springboot+mybatis+layui就业信息管理... 管理员用户:admin 123456 运行环境 jdk8+mysql+IntelliJ IDEA+maven 注意: 1.springboot的启动端口为8000,启动类EmploymentMan...
基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统...
基于SpringBoot+MyBatis实现的一套完整的电子商城前后台管理系统 项目经过严格测试,确保可以运行!源码无需做任何更改! 一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker...
SpringBoot+MyBatis+Mysql+Layui实现功能完善的原创文学CMS系统 SpringBoot+MyBatis+Mysql+Layui实现功能完善的原创文学CMS系统 SpringBoot+MyBatis+Mysql+Layui实现功能完善的原创文学CMS系统 SpringBoot+...
springboot+mybatis+mysql最简单demospringboot+mybatis+mysql最简单demospringboot+mybatis+mysql最简单demospringboot+mybatis+mysql最简单demospringboot+mybatis+mysql最简单demospringboot+mybatis+mysql最简单...
后端: SpringBoot + MyBatis + MySQL 前端: Vue + ElementUI 教育培训机构管理系统,此系统为前后端分离方式开发的系统,技术栈为: 后端: SpringBoot + MyBatis + MySQL 前端: Vue + ElementUI 教育...
毕业设计,基于springboot+mybatis-plus+shiro+mysql+layui开发的仓库物流管理系统,课程设计 基于spring boot的中小型仓库物流管理系统(springboot+mybatis-plus+shiro+mysql+layui前端框架) 技术栈使用 后端:...
基于SpringBoot + Mybatis + Thymeleaf + Redis + MongoDB + MySQL开发的商品管理系统 主要用到的技术: 使用maven进行项目构建 使用Springboot+Mybatis搭建整个系统 使用Thymeleaf模板技术实现页面静态化 使用框架...
本项目JDK8x64+SpringBoot+MyBatis+Redis+Druid+Beetl+Shrio的框架组合, 自研工作流引擎,支持可视化表单设计与流程设计。 支技分布式部署。功能完善能够满足中大型企业办公需要。 本项目JDK8x64+SpringBoot+...
这是一个java WEB小项目,用 Maven Springboot+mybatis+mysql+redis集成的小项目例子,可供新手进行参考学习,数据库是mysql 5.5 ,只是一个简单的小参考例子,测试过可以正常运行
Java+Springboot+Mybatis架构是现代Web应用开发中常用的技术栈,这三种技术的结合提供了高效、便捷的后端开发解决方案。以下是关于这个架构的详细说明: **Java**: Java是一种广泛使用的面向对象的编程语言,以其跨...
springboot + mybatis-plus + database+ 多数据源 + redis + hutool 框架干净,没有其他冗余的成分; 配置了MP的代码生成器,意见生成代码,节省开发时间! 可用于各种定时任务处理,各种夸库操作, 多数据源支持...
springboot+mybatis+mysql实现读写分离 先在建好mysql主从数据库的配置,然后在代码中根据读写分离或强制读取master数据库中的数据 mysql数据库设置主从,参考: ...
基于springboot +mybatis +thymeleaf 的学生信息管理系统,适合springboot初学者的练手项目 功能包含(学生,教师,管理员),项目基于springboot2.1.x实现的管理系统。如果你是spring boot初学者,那么此项目非常适合...
基于 SpringBoot + Mybatis + Shiro + mysql + redis构建的智能云教育平台。架构上使用完全前后端分离。 系统概述: 1、支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师...
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 ...springboot项目简单、快速、方便,越来越多的人使用,这是一个Springboot+mybatis+mysql+web的实例,简单易懂,非常适合springboot的初学者
SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验 本实验的主要目标是使用SpringBoot、Mybatis和CXF框架来实现Restful API和WebService API接口的大实验。下面是实验的详细介绍: 标题...