springBoot整合spring、springMVC、mybatis
前文
1、为什么使用springBoot
众所周知,spring是Java在搭建后台时非常实用的框架,其整合了市场上几乎所有的主流框架于一体,使后端编程更加高效、快速;
而SpringBoot更是把spring的优势发挥到了极致,声称零配置,简化版spring,只需要使用几行代码,是一个微服务框架。
它确实做到了,这也是他的牛逼之处,成功不是没有道理。
搭载环境
1、IDE工具:Eclipse
2、JDK版本:1.8+
3、持久层:Mybaits
4、数据库:Mysql
步骤
【01】创建一个简单的maven项目(创建普通项目就可以,可以打包成jar,毕竟SpringBoot是一个微服务框架)
如果项目没有 src/main/resources文件夹,请按照链接所示创建文件夹:https://www.cnblogs.com/zhangyuanqiang/p/9183908.html
【02】加入Springboot、Mybaits、mysql依赖和打包设置,JDK版本
<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>1026</groupId>
<artifactId>springBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>springBoot</name> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- Spingboot相关jar包版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Springboot核心jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- web开发包:包含Tomcat和Springmvc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spring-boot热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- mysql jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- mybatis-spring-boot jar包 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency> </dependencies>
<build>
<plugins>
<!-- 打包mainClass设置 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.springBoot.App</mainClass>
</configuration>
</plugin>
<!--JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
</build>
</project>
【03】设置SpringBoot启动类(这里使用创建初始的类作用启动类),启动类里加上注解用于给出需要扫描的mapper文件路径@MapperScan("XXXX")
注意:下文App.java为启动类,在com.springBoot这个包下面,之后新建的controller、entity、service都要在这个包下面,不然会报异常:Class not found
【03】创建配置文件
不使用application.properties文件 而使用更加简洁的application.yml文件。创建application.yml配置文件(备注:其实SpringBoot底层会把application.yml文件解析为application.properties),本文创建了两个yml文件(application.yml和application-dev.yml),分别来看一下内容(-dev是开发环境配置,后续可以新建-prod生产环境配置,通过active节点切换,便于项目管理):
application.yml:
spring:
profiles:
active: dev
application-dev.yml(已经设置mysql连接、log日志、mybatis的mapper位置和实体类别名):
server:
port: 8078
session-timeout: 30
tomcat.max-threads: 0
tomcat.uri-encoding: UTF-8 # springboot-mybatis dateSource options
spring:
datasource:
username: root
password: HZBhzb1237763522-1
url: jdbc:mysql://localhost:3306/TestDB?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver # mybatis mapping propreties
mybatis:
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: com.springBoot.domain # showSql
logging:
level:
com:
springBoot:
mapper : debug
【04】完整的目录结构
完整代码:
App.java
package com.springBoot; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
*项目启动类
*/ @MapperScan("com.springBoot.mapper") //扫描的mapper
@SpringBootApplication
public class App extends SpringBootServletInitializer
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args); //关键代码
} @Override//为了打包springboot项目
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
UserController.java
package com.springBoot.controller; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 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; import com.springBoot.domain.UserBean;
import com.springBoot.service.UserService;
@SuppressWarnings("all")
@Controller
@RequestMapping(value="/springBoot")
public class UserController { @Autowired
UserService UserServiceImpl; @RequestMapping(value="/User")
@ResponseBody
public void hello(HttpServletRequest request,HttpServletResponse response) throws Exception{
String Name=request.getParameter("UserName");
UserBean user=UserServiceImpl.checkUser(Name,"");
if(null==user)
response.getWriter().write("Login was failed!");
else
response.getWriter().write("Login was successed!");
} }
UserBean.java
package com.springBoot.domain; public class UserBean {
private String rowid;
private String col_userName;
private String col_password;
private String col_email;
private String col_createdOn;
private String col_createdBy;
private String col_modifiedOn;
private String col_modifiedBy; public String getRowid() {
return rowid;
}
public void setRowid(String rowid) {
this.rowid = rowid;
}
public String getCol_userName() {
return col_userName;
}
public void setCol_userName(String col_userName) {
this.col_userName = col_userName;
}
public String getCol_password() {
return col_password;
}
public void setCol_password(String col_password) {
this.col_password = col_password;
}
public String getCol_email() {
return col_email;
}
public void setCol_email(String col_email) {
this.col_email = col_email;
}
public String getCol_createdOn() {
return col_createdOn;
}
public void setCol_createdOn(String col_createdOn) {
this.col_createdOn = col_createdOn;
}
public String getCol_createdBy() {
return col_createdBy;
}
public void setCol_createdBy(String col_createdBy) {
this.col_createdBy = col_createdBy;
}
public String getCol_modifiedOn() {
return col_modifiedOn;
}
public void setCol_modifiedOn(String col_modifiedOn) {
this.col_modifiedOn = col_modifiedOn;
}
public String getCol_modifiedBy() {
return col_modifiedBy;
}
public void setCol_modifiedBy(String col_modifiedBy) {
this.col_modifiedBy = col_modifiedBy;
}
@Override
public String toString() {
return "UserBean [rowid=" + rowid + ", col_userName=" + col_userName + ", col_password=" + col_password
+ ", col_email=" + col_email + ", col_createdOn=" + col_createdOn + ", col_createdBy=" + col_createdBy
+ ", col_modifiedOn=" + col_modifiedOn + ", col_modifiedBy=" + col_modifiedBy + "]";
} }
UserMapper.java
package com.springBoot.mapper; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service; import com.springBoot.domain.UserBean;
@Service
public interface UserMapper {
/**
* check user
* @param userName
* @param password
* @param UserBean object
* */
UserBean checkUser(@Param(value="userName") String userName,@Param(value="password") String password);
}
UserService.java
package com.springBoot.service; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service; import com.springBoot.domain.UserBean;
public interface UserService {
/**
* check user
* @param userName
* @param password
* @param UserBean object
* */
UserBean checkUser( String userName,String password);
}
UserServiceImpl.java
package com.springBoot.service.impl; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.springBoot.domain.UserBean;
import com.springBoot.mapper.UserMapper;
import com.springBoot.service.UserService;
@Service
public class UserServiceImpl implements UserService { @Autowired
UserMapper userMapper; @Override
public UserBean checkUser(String userName, String password) {
// TODO Auto-generated method stub
return userMapper.checkUser(userName, password);
} }
ClientMapper.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.springBoot.mapper.UserMapper">
<resultMap type="UserBean" id="ClientList">
<id property="rowid" column="rowid" />
<result property="col_userName" column="col_userName" />
<result property="col_password" column="col_password" />
<result property="col_email" column="col_email" />
<result property="col_createdOn" column="col_createdOn" />
<result property="col_createdBy" column="col_createdBy" />
<result property="col_modifiedOn" column="col_modifiedOn" />
<result property="col_modifiedBy" column="col_modifiedBy" /> </resultMap> <!-- 查询 -->
<select id="checkUser" resultMap="ClientList" >
select *
from tb_user
WHERE
col_userName=#{userName}
</select> </mapper>
application.yml
spring:
profiles:
active: dev # use properties by application-dev.yml
application-dev.yml
server:
port: 8078
session-timeout: 30
tomcat.max-threads: 0
tomcat.uri-encoding: UTF-8 # springboot-mybatis dateSource options
spring:
datasource:
username: root
password: HZBhzb1237763522-1
url: jdbc:mysql://39.108.217.125:3306/TestDB?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver # mybatis mapping propreties
mybatis:
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: com.springBoot.domain # showSql
logging:
level:
com:
springBoot:
mapper : debug
测试:
http://localhost:8078/springBoot/User?UserName=root
springBoot整合spring、springMVC、mybatis的更多相关文章
- 使用maven整合spring+springmvc+mybatis
使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...
- maven项目快速搭建SSM框架(一)创建maven项目,SSM框架整合,Spring+Springmvc+Mybatis
首先了解服务器开发的三层架构,分配相应的任务,这样就能明确目标,根据相应的需求去编写相应的操作. 服务器开发,大致分为三层,分别是: 表现层 业务层 持久层 我们用到的框架分别是Spring+Spri ...
- eclipse整合spring+springMVC+Mybatis
一.新建Maven项目 点击菜单栏File项,选择New->Project,选中Maven Project,如下图: 二.配置pom.xml <?xml version="1.0 ...
- SSM框架整合(Spring+SpringMVC+Mybatis)
第一步:创建maven项目并完善项目结构 第二步:相关配置 pom.xml 引入相关jar包 1 <properties> 2 <project.build.sourceEncod ...
- 使用IDEA的gradle整合spring+springmvc+mybatis 采用javaconfig配置
1.在上篇博客里讲述了spring+mybatis的整合,这边在上篇的基础上进行开发. 上篇博客链接http://www.cnblogs.com/huangyichun/p/6149946.html ...
- 整合spring+springmvc+mybatis
开发环境: jdk 1.8 eclipse 4.7.0 (Oxygen) tomcat 8.5.29 mysql 5.7 开发前准备: spring 框架的jar包,在这里使用的是spring-5.0 ...
- shiro与Web项目整合-Spring+SpringMVC+Mybatis+Shiro(八)
Jar包
- Spring+SpringMVC+MyBatis+easyUI整合
进阶篇 Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API 优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇
优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log Spring+SpringMVC+MyBatis+easyUI整合优化篇 ...
- Spring+SpringMVC+MyBatis整合(easyUI、AdminLte3)
实战篇(付费教程) 花了几天的时间,做了一个网站小 Demo,最终效果也与此网站类似.以下是这次实战项目的 Demo 演示. 登录页: 富文本编辑页: 图片上传: 退出登录: SSM 搭建精美实用的管 ...
随机推荐
- Redis日志级别
Redis默认的设置为verbose,开发测试阶段可以用debug,生产模式一般选用notice 1. debug:会打印出很多信息,适用于开发和测试阶段 2. verbose(冗长的):包含很多不太 ...
- while 循环 及 and or not
一 while 循环 语法: while 条件: 结果 如果条件为真,则直接执行结果,然后再次判断条件,直到条件是假,停止循环 结束循环: 1.改变条件 2.break 二 流程控制 break 和 ...
- goaccess安装和使用
安装依赖 $ sudo apt-get install libncursesw5-dev $ wget https://github.com/maxmind/geoip-api-c/releases/ ...
- 使用remix的solidity在线编译环境部署一个faucet合约
一.浏览器打开https://remix.ethereum.org 地址 点击"+"新建一个sol文件,命名为faucet.sol 然后在代码区输入solidity代码 选择相关插 ...
- 合并K个sorted list
合并k个已经排好序的数列是面试中也比较容易被问到的一个算法,有很多种解决,其中第一时间比较容易想到的解法如下: 对于这三组从小到大的数列: 如此循环,最终就将三个已经排序的数列的数字按从小到大的顺序排 ...
- Hdu 1851 Nim+巴什博弈
写出SG表 发现SG函数规律为Mi%(Li+1) #include<bits/stdc++.h> using namespace std; int main() { int t; cin ...
- 记录一下Web开发环境搭建 Eclipse-Java EE 篇
转自https://www.cnblogs.com/yangyxd/articles/5615965.html Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. ...
- Vue错误集
1.Component template should contain exactly one root element. If you are using v-if on multiple elem ...
- vmware虚拟机新增磁盘及挂载详细步骤
虚拟机新增磁盘及挂载步骤 1.新增磁盘 (1) 编辑虚拟机设置->添加 (2) 选择硬盘->下一步 (3) 选择SCSI格式,下一步 (4) 创建新虚拟磁盘,下一步 (5) 设置 ...
- luogu4366 [Code+#4]最短路[优化建边最短路]
显然这里的$n^2$级别的边数不能全建出来,于是盯住xor这个关键点去 瞎猜 探究有没有什么特殊性质可以使得一些边没有必要建出来. 发现一个点经过一次xor $x$,花费$x$这么多代价(先不看$C$ ...