SpringBoot —— 整合mybatis+微服务注册
mybatis主要是将sql从代码中剥离出来,配置到配置文件(.xml)中的优秀框架。Springboot可以通过简单的配置,简化了传统的springmvc中很多的配置文件,就可以实现项目的构建。在分布服务的概念中,尤其适用于这种框架。
1.创建数据库表,存入简单数据。
id | name |
---|---|
123 | 张三 |
02 | 李四 |
2.创建springboot项目pxApp
2.1配置pxApp项目的pom.xml
<?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>cn.gbicc</groupId><artifactId>pxApp</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>pxApp</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2.2通过application.properties配置数据源等
#springboot+mybatis
#jiazai mybatis peizhi
mybatis.config-location=classpath:mapper/config/mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml#bieming
#mybatis.type-aliases-package=com.pxAppInterface.entity
#shujuyuan
spring.datasource.url=jdbc:mysql://localhost:3062/px_user?useUnicode=true&characterEncoding=UTF-8
#shujuyuan qudong
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
2.3配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><typeAliases><typeAlias alias="Integer" type="java.lang.Integer" /><typeAlias alias="Long" type="java.lang.Long" /><typeAlias alias="HashMap" type="java.util.HashMap" /><typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" /><typeAlias alias="ArrayList" type="java.util.ArrayList" /><typeAlias alias="LinkedList" type="java.util.LinkedList" /></typeAliases>
</configuration>
2.4配置*Mapper.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.pxAppInterface.mapper.UserMapper" ><resultMap id="user" type="com.pxAppInterface.entity.User" ><result column="id" property="Id" jdbcType="VARCHAR" /><result column="name" property="Name" jdbcType="VARCHAR" /></resultMap><select id="getUserp" resultType="com.pxAppInterface.entity.User" parameterType="map">SELECT * FROM user where id=#{Id} </select><select id="getUserpCount" resultType="java.lang.Integer">SELECT count(*) FROM user</select>
</mapper>
service,dao User类都省略不写了,与以往项目没什么不同。
3.运行及访问
springboot 的强大之处,也体现在了这儿。项目启动无需在tomcat等服务器中,直接通过运行3.2的主函数方法,既可以启动成功。
访问时的url路径,也要安全简洁的多。只是采取这种方便的路径,Controller的接收参数格式,要做如3.1的改变。
##3.1写Controller
package com.pxAppInterface.controller;import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;import com.pxAppInterface.entity.ChapterTab;
import com.pxAppInterface.entity.User;
import com.pxAppInterface.service.ChapterTabService;
import com.pxAppInterface.service.UserService;//相当于@Controller+@ResponseBody
@RestController
public class courseController {//注入service对象@Autowiredprivate UserService userService;@Autowiredprivate ChapterTabService chapterTabService;@RequestMapping("ssm")public User findAll(){Map<String, Object> map = new HashMap<String,Object>();map.put("Id", "123");User u = userService.getUserp(map);return u;}//使用@RestController注解,返回String类型时,返回的就是字符串,不是页面@RequestMapping("/findJsp")public String yeMian(){return "test";}//访问路径http://localhost:8080/findAllFH/资产风险预警@RequestMapping("/findAllFH/{courseName}")public List<ChapterTab> findAllFH( @PathVariable String courseName){Map<String, Object> map = new HashMap<String,Object>();Map<String, Object> map1 = new HashMap<String,Object>();map1.put("courseName", courseName);List<ChapterTab> chapterList = chapterTabService.getFH(map1);map.put("chapterList",chapterList);return chapterList;}//访问路径http://localhost:8080/findAllFH2/@RequestMapping("/findAllFH2")public List<ChapterTab> findAllFH2(){Map<String, Object> map = new HashMap<String,Object>();Map<String, Object> map1 = new HashMap<String,Object>();map1.put("courseName", "资产风险预警");List<ChapterTab> chapterList = chapterTabService.getFH(map1);map.put("chapterList",chapterList);return chapterList;}
}
3.2 启动类
运行此方法,及可通过3.1中的路径访问,并查询出数据
package com.pxAppInterface;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@MapperScan("com.pxAppInterface.mapper")
public class PxAppApplication {public static void main(String[] args) {SpringApplication.run(PxAppApplication.class, args);}
}
启动后的示例图:
访问findJsp 无法返回jsp页面,具体访问方法,请看下篇博客。
至此,一个整合mybatis的springboot项目就构建完毕了。
接下来我们来也“服务”。
4.构建服务项目testapp-servers
新建一个springboot项目,作为服务项目。
4.1 pom.xml
导入spring-cloud-starter-eureka-server和spring-cloud-dependencies
<?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>cn.gbicc</groupId><artifactId>testapp-servers</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>testapp-servers</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR4</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>
4.2配置application.properties
配置端口和ip
server.port=8761eureka.instance.hostname=localhost
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.client.serviceUrl.defaultZone= http://${eureka.instance.hostname}:${server.port}/eureka/
4.3启动该项目
package com.theserver;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer
public class TestappServersApplication {public static void main(String[] args) {SpringApplication.run(TestappServersApplication.class, args);}
}
4.4启动后访问
由于application.properties中配置的端口为8761,ip配置的为localhost,所以访问路径为http://localhost:8761/,此时可以看到,红色箭头标记处,并无服务已注册。启动成功。
5.注入服务
将本文2和2.1中建的pxApp项目,作为注入对象。
##5.1 对pxApp项目的pom文件进行更改
1.加入spring-cloud-starter-eureka依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency>
2.设置spring-cloud-starter-eureka的版本
<spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
3.加入dependencyManagement
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type> <scope>import</scope></dependency></dependencies>
</dependencyManagement>
4.更改好的完整pom.xml文件
<?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>cn.gbicc</groupId><artifactId>pxApp</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>pxApp</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Dalston.RELEASE</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type> <scope>import</scope></dependency></dependencies>
</dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
5.2在application.properties进行更改
设置端口和服务名字,名字可以设置自己的项目名,也可以随意起。端口号是服务注册后,访问时要用到的,不要跟其他服务重复。我在这里将此次端口号设置为8387
#springboot+mybatis
#jiazai mybatis peizhi
mybatis.config-location=classpath:mapper/config/mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml#bieming
#mybatis.type-aliases-package=com.pxAppInterface.entity
#shujuyuan
spring.datasource.url=jdbc:mysql://120.199.82.51:3062/px_user?useUnicode=true&characterEncoding=UTF-8
#shujuyuan qudong
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root#------------------update -------------------------
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/server.port=8387
spring.application.name=pxApp
#------------------update -------------------------
5.3给启动类加入@EnableDiscoveryClient注解
加入此注解后再启动,并访问刚刚的服务项目路径
http://localhost:8761/
此时发现pxAPP已被成功注入
6.访问pxApp服务下的ssm接口
eclipse可以停到pxApp项目,但是不要将testapp-servers项目停掉。
http://192.168.1.111:8387/ssm
访问成功。
ps:192.168.1.111为注册服务是的本地ip
SpringBoot —— 整合mybatis+微服务注册相关推荐
- SpringBoot~整合mybatis+微服务注册
mybatis主要是将sql从代码中剥离出来,配置到配置文件(.xml)中的优秀框架.Springboot可以通过简单的配置,简化了传统的springmvc中很多的配置文件,就可以实现项目的构建.在分 ...
- SpringBoot集成MyBatis(微服务)
今天小编介绍的是简单学习springboot后,与mybatis集成所做的CRUD操作的一个微服务.以下是小编对自己做的这个小工程的详解,不足之处还请各位大神多多指教. [项目介绍] 网上书城一个简单 ...
- 【Consul教程】2.SpringBoot整合Consul搭建服务注册与发现
前言 上篇讲到了consul的安装,这篇主要SpringBoot 和consul整合,springcloud 的eureka已经不更新了,可以过渡到consul. 整合 consul的注册中心是安装的 ...
- SpringBoot整合Mybatis(高级)
SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...
- 【过程记录】springcloud配置使用Eureka作服务发现组件并进行微服务注册
Eureka介绍 工具准备 步骤 编写eureka server 编写微服务应用: 查询指定微服务在Eureka上的实例列表 Eureka的自我保护模式 Eureka介绍 Eureka是Netflix ...
- 将微服务注册到Eureka Server上
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- SpringCloud微服务注册调用入门教程
关于SpringCloud的相关知识在此不做讨论 , 直接一步步完成一套简单完整的SpringCloud微服务注册与调用的Demo . 1 . 创建一个maven主工程 , 填写工程信息 , Fini ...
- 微服务注册中心:Consul——服务注册
系列文章: 微服务架构:网关概念与 zuul 微服务网关:Spring Cloud Gateway -- Zuul 微服务网关:Spring Cloud Config- 配置中心 微服务网关方案:Ko ...
- (一)SpringBoot 整合 MyBatis
一.工具 IDE:idea.DB:mysql 二.创建SpringBoot工程 在Idea中使用SpringInitializr模板创建SpringBoot工程,依赖选择如下: 这里也可以不选JDBC ...
最新文章
- 软件篇:程序员如何提升自己的技能
- 控制反转---依赖注入理解
- 抽象类与接口的一个程序实现
- ansible(5)——使用通配符操作ansible命令
- MySQL 如何利用做排序
- Codeforces Round #321 (Div. 2) C. Kefa and Park dfs
- php mime base64,base64_encode — 使用 MIME base64 对数据进行编码
- mysql ignore-columns_坑 - 当insert ignore遇到not null
- linux内核sysfs详解【转】
- 【田间连着车间、佘太酒业这十年!
- PHPCMS 模板调用标签大全
- 打印机驱动装上了,却无法正常打印的问题解决方法
- SikuliX教程-下载与安装
- 杭州电子科技大学计算机科学与技术专业排名,杭州电子科技大学计算机科学与技术研究生专业排名...
- adb install 安装错误常见列表
- Mac环境配置SSH Key
- ECharts之饼状图
- 可编程控制、微机接口及微机应用综合实验台
- swagger 上传文件 参数_Swagger发送body和formData参数
- 产品结构设计的主要内容有哪些?
热门文章
- jquery网页在线流程图
- 汽车加油问题 --贪心算法
- postgis 计算面积
- 使用javamail报出:530 Error: A secure connection is requiered(such as ssl). More information at http://se
- AWS-Route53服务
- 量子计算机对电子商务,“量子产品”系虚假宣传 为何仍能在电商平台销售?...
- win10系统cmd运行exe文件
- 使用Maven构建WebApp项目
- 初识RDMA技术——RDMA概念,特点,协议,通信流程
- python画管柱图_汽车电动控制调整转向管柱的制作方法