微服务架构 SpringBoot(二)
第二天内容:想来想去玩个ssm小demo吧
1.创建表

2..引入相关mybatis 数据库jar:
<!--mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
3.在application.properties文件中 配置数据库驱动
spring.datasource.url=jdbc:mysql://localhost/springboot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

4.编写三层 bean

beans
package com.chinasoft.bean;
public class User {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
dao
package com.chinasoft.dao; import java.util.List; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import com.chinasoft.bean.User; @Mapper //集成mybatis
public interface UserDao {
@Select("select id ,name from user_tba") //也可以写配置文件形式,通过配置读取sql,我这里就不多讲了
public List<User> getUser(); @Update("UPDATE user_tba SET name = #{name} WHERE id =#{id}")
int updateById(User user); @Insert("insert INTO user_tba (name) values(#{name})")
void insert(User user); @Delete("DELETE FROM user_tba WHERE id = #{id} ")
int delete(Long id); }
Service
package com.chinasoft.service;
import java.util.List;
import com.chinasoft.bean.User;
public interface UserService {
public List<User> getUser();
int updateById(User user);
void insert(User user);
int delete(Long id);
}
ServiceImpl
package com.chinasoft.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.chinasoft.bean.User;
import com.chinasoft.dao.UserDao;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userdao; @Override
public List<User> getUser() {
return userdao.queryAll();
} @Override
public int updateById(User user) {
return userdao.updateById(user);
} @Override
public void insert(User user) {
userdao.insert(user);
} @Override
public int delete(Long id) {
return userdao.delete(id);
} }
Contorller
package com.chinasoft.controller; import java.util.List; 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.chinasoft.bean.User;
import com.chinasoft.service.UserService; @Controller
//@RestClientTest
public class HelloSpringBootContorller {
@Autowired
private UserService userService; @RequestMapping(value ={"/show"})
@ResponseBody
public List<User> getUser(){
List<User> user = userService.getUser();
return user;
}
@RequestMapping(value ={"/update"})
public void updateUser(){
User user = new User();
user.setId(1);
user.setName("杨幂");
userService.updateById(user);
} @RequestMapping(value ={"/insert"})
public void insertUser(){
User user = new User();
user.setName("赵丽颖");
userService.insert(user);
} @RequestMapping(value ={"/delete"})
public void deleteUser(){ userService.delete(4L);
} }
运行配置:
package com.chinasoft.springboot; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; @SpringBootApplication
@ComponentScan(basePackages = "com.chinasoft.*" )
@MapperScan(basePackages = "com.chinasoft.dao") //需注意 此为扫描数据库资源文件
public class SpringbootApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
启动:

添加监控运维:(查看请求及jvm的运行信息)
<!--监控运维 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

监控运维作用:
当请求访问时可以访问监控,看到用户的请求,操作信息,及jvm的运行状态。。。信息。
https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/
搜索actuator查看相关属性

例如访问:http://localhost:8082/beans 显示的监控信息。。。

细节概要:
1.mybatis怎么和实体类映射的呢?可访问mybatis官网(http://blog.mybatis.org/mybatis-3/java-api.html)
A:@Mapper 自动扫描字段与实体类相对性给予映射。若不同则为空,eg:将数据库中的NAME字段改为address,运行结果如下,

如果手动映射如下:


2.关键字
sql中存在关键字 需要在关键字前后加反引号 (键盘英文格式下 ctrl +alt +~ )

总结:
Spring Boot集成mybatis时的一些注意的地方,也可以看出来SpringBoot确实简介方便,以前用mybatis还要封装查询query,而现在直接@select便可以直接查询,还是比较方便的开发的,这也应该是一种趋势,
技术交流群,海量学习资料免费获取:Q群:289683917
微服务架构 SpringBoot(二)的更多相关文章
- Spring Cloud构建微服务架构(二)服务消费者
Netflix Ribbon is an Inter Process Communication (IPC) cloud library. Ribbon primarily provides clie ...
- 微服务架构 SpringBoot(一)
spring Boot:官网地址 https://spring.io/ 由来: 随着spring组件功能的强大,配置文件也越来越复杂繁琐,背离了spring公司的简洁快速开发原理,2015年就推出Sp ...
- Spring Cloud构建微服务架构(二)分布式配置中心
注:此文不适合0基础学习者直接阅读,请先完整的将作者关于微服务的博文全部阅读一遍,如果还有疑问,可以再来阅读此文,地址:http://blog.csdn.net/sosfnima/article/d ...
- 微服务架构 - SpringBoot整合Jooq和Flyway
在一次学习分布式跟踪系统zipkin中,发现了jooq这个组件,当时不知这个组件是干嘛的,后来抽空学习了一下,感觉这个组件还挺用的.它主要有以下作用: 通过DSL(Domain Specific La ...
- 《Spring Cloud构建微服务架构》系列博文示例
SpringCloud-Learning 源码下载地址:http://download.csdn.net/detail/k21325/9650968 本项目内容为Spring Cloud教 ...
- Net分布式系统之五:微服务架构
因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...
- Spring Cloud构建微服务架构
Dalston版本 由于Brixton和Camden版本的教程已经停止更新,所以笔者计划在2017年上半年完成Dalston版本的教程编写(原计划完成Camden版本教程,但由于写了两篇Dalston ...
- Spring Cloud构建微服务架构(三)消息总线
注:此文不适合0基础学习者直接阅读,请先完整的将作者关于微服务的博文全部阅读一遍,如果还有疑问,可以再来阅读此文,地址:http://blog.csdn.net/sosfnima/article/d ...
- SpringBoot微服务架构下的MVC模型总结
SpringBoot微服务架构下的MVC模型产生的原因: 微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其繁琐的配置流程 , 复杂的设置行为,为项目的开发增加了繁重的工作量,微服务致力于解 ...
随机推荐
- 组长组——“多彩夕阳”APP评价
基于NABCD评论,及改进建议 一.组长组NABCD: N-需求背景: (1)我国老龄化日益加重,已突破两亿.目前人数还在增加,解决老年福祉成为社会关注的民生话题. (2)智能手机越来越普遍,老年人已 ...
- 2019-9-27:渗透测试,metasploit-framework初接触
初次利用metasploit漏洞利用框架,入侵获取win7获取权限 目标机系统:windows7,无修复补丁 目标ip地址:192.168.20.131 任务:利用ms17-010,永恒之蓝漏洞,获取 ...
- (六)OpenStack---M版---双节点搭建---Neutron安装和配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建网络服务数据库 2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限 3.创 ...
- Scala学习系列一
一 scala介绍 Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言. 1) Scala 是一门多范式 (multi-parad ...
- python的Requests库的使用
Requests模块: Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量 ...
- oracle 触发器(自增写法)
触发器trigger 触发器我们也可以认为是存储过程,是一种特殊的存储过程. 存储过程:有输入参数和输出参数,定义之后需要调用 触发器:没有输入参数和输出参数,定义之后无需调用,在适当的时候会自动执行 ...
- 以传参的方式执行shell(模板)
以传参的方式执行shell(模板) #!bin/bash # USE: Template # author : xiaowei # -- # state : -name 选项必选,,, -v -m 选 ...
- Win10无法安装.NET Framework3.5的解决办法
诸位网友如果工作中使用WIN10遇到如图的这种问题,现将解决办法整理如下: 一.第一步就是修复系统:按“Windows+X”点击“Windows PowerShell(管理员)&命令提示符(管 ...
- yarn和npm的对比以及yarn的使用
0--前言 为什么要使用yarn,如果你从事前端开发有些年头了,那你肯定对npm又爱又恨,爱就不说了,恨嘛,就是NPM经常奇慢和卡顿,这还能忍,经常各种错误就没法忍了,尤其是他人创建的项目,自己在安装 ...
- ThinkPHP 中 where条件 or,and 同时使用
('a'=1 and 'b'=2) or ('c'=3 and 'd'=4) and 'e'=5 $where_1['a'] = 1; $where_1['b'] = 2; $where_2['c'] ...