SpringBoot入门案例
以前学习做一个的SSM项目 基本上开头就是一大难,配不尽的XML文件 还要管理依赖不能冲突 这怎么搞呀 很是让人头疼 对于我这个初学者来说就已经差点劝退了
基本上最少要配置这么多的文件
如果有一种技术可以能把这一步完全搞定就好了
当然有啦 SpringBoot 可以大大的解放程序员的工作量 让程序员将精力去处理复杂的业务
好了 步入正题
先来看一下官网介绍
基本就是以最简便的方法开始使用
特征
1.创立独立的spring 应用程序
2.直接嵌入了Tomcat ,Jetty或Undertow(无需部署WAR文件)很赞
3.提供自以为是"入门依赖项",简化构建配置
4.尽可能自动配置 Spring ,3rd petty库
5.提供可用生产的功能 ,例如指标,运行状态,外部化配置
6.完全没有代码生成,也不需要XML配置
让我们先创建一个SpringBoot Project
源码传送门github地址
基本就Next Next就好啦
让我们看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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.tll</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--web启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热部署 改变java文件 配置文件会重启 修改静态文件不会重启 会调用livereload刷新浏览器,显示最新内容-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--自动生成get/set 无需重复的构建 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--通用mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!--测试启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--应用打包成可运行的jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
SpringBoot已经帮我们将之前的spring springMVC 等都配置好了
我们只需要添加数据库启动器就好了 这里使用的MySQL 并用通用Mapper对表进行单表操作
详细的内容可以看上面git源码地址
配置yaml 也可以使用proties
server:
port: 8088
logging:
level:
cn.tll.demo: debug
#org.springframework: debug
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
username: root
password: root
mybatis:
type-aliases-package: cn.tll.demo.entity
type-aliases-package: 注释(可以用完全限定名来指定POJO的应用)
创建接口UserMapper继承通用Mapper<具体的POJO>
package cn.tll.demo.mapper;
import cn.tll.demo.entity.User;
import tk.mybatis.mapper.common.Mapper;
/**
* @author tll
* @date 2020-04-22
*/
public interface UserMapper extends Mapper<User> {
}
编写Controller 用于调用
package cn.tll.demo.web;
import cn.tll.demo.entity.User;
import cn.tll.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author tll
* @date 2020/04/21
*/
@RestController
@RequestMapping("user")
public class HelloController {
@Autowired
private UserService userService;
@RequestMapping("{id}")
public User index(@PathVariable("id")Long id){
return userService.findByid(id);
}
}
编写Service业务
package cn.tll.demo.service;
import cn.tll.demo.entity.User;
import cn.tll.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author tll
*/
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
/**
* 根据id主键来查询
* @param id
* @return
*/
public User findByid(Long id){
return userMapper.selectByPrimaryKey(id);
}
/**
* 添加用户 需要事务
* @param user
*/
@Transactional(rollbackFor = Exception.class)
public void insertUser(User user){
userMapper.insert(user);
}
}
建表语句
CREATE TABLE t_user(
id BIGINT(20) NOT NULL AUTO_INCREMENT,
username VARCHAR(100) DEFAULT NULL COMMENT '用户名',
PASSWORD VARCHAR(100) DEFAULT NULL COMMENT '密码',
NAME VARCHAR(100) DEFAULT NULL COMMENT '姓名',
age INT(10) DEFAULT NULL COMMENT '年龄',
sex TINYINT(1) DEFAULT NULL COMMENT '性别,1男性 2 女性',
birthday DATE DEFAULT NULL COMMENT '出生日期',
remark VARCHAR(255) DEFAULT NULL COMMENT '备注',
createtime DATETIME DEFAULT NULL COMMENT '创建时间',
modifytime DATETIME DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (id),
UNIQUE KEY (username)
)ENGINE=INNODB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
INSERT INTO t_user (username,PASSWORD,NAME,age,sex,birthday,remark,createtime,modifytime) VALUES('张三','123','张三',20,1,'2000-01-01','太极','2020-04-22','2020-04-22');
调用结果
大功告成 是不是很简单呢
本人也是小白 如有错误 请你指教