初识SpringBoot入门

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');


调用结果

在这里插入图片描述

大功告成 是不是很简单呢

本人也是小白 如有错误 请你指教

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值