Spring Boot框架

Posted 理想三旬_z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot框架相关的知识,希望对你有一定的参考价值。

产生背景:  

  1.基于spring大量繁琐的配置文件,各种xml配置以及注解配置,为了简化整个开发过程,在spring基础之上提供了一套全新的开源的框架, 他就是spring boot。

  2.它具有spring一切优秀的特性,且更加简单,功能更丰富,性能更稳定。

  3.依赖模块“开箱即用”,自动配置。

  4.有内置Servlet容器(例如 Tomcat、Jetty 或者 Undertow 等),告别jar包

  5.不需要任何xml配置

 

创建Spring Boot(以IntelliJ IDEA为例)

  1.新建Spring Initializr(maven也可)工程,建议走阿里云:https://start.aliyun.com/

 

 

  2.在 dependencise 界面中,选择 Spring Boot 的版本以及需要引入的依赖。

  3.进入工程会默认配置一个XXXXApplication 的主启动程序。

  4.yml(yaml)

  YAML 全称 YAML Ain\'t Markup Language,它是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件。
  想要使用 YAML 作为属性配置文件(以 .yml 或 .yaml 结尾),需要将 SnakeYAML 库添加到 classpath 下,Spring Boot 中的 spring-boot-starter-web 或 spring-boot-starter 都对 SnakeYAML 库做了集成, 只要项目中引用了这两个 Starter 中的任何一个,Spring Boot 会自动添加 SnakeYAML 库到 classpath 下。

  YAML 的语法如下:

  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。
  • 缩进的空格数不重要,但同级元素必须左侧对齐。
  • 大小写敏感。

举例:Spring Boot 链接oracle,增删改查--表数据

  1.新建好Spring Initializr工程后,将默认的配置文件改为yml格式,填写链接部分。内容如下:

spring:
  datasource:
    driver-class-name: oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@192.168.234.151:1521:orcl
    username: zyp
    password: ok

mybatis:
  mapper-locations: classpath*:mapper/*.xml
  type-aliases-package: com.zyp.myspb1.entity

  2.写三层结构,及存放sql部分的xml文件

resources配置下新建mapper包,这里存放各种业务类的sql语句部分,例bank.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.zyp.myspb1.dao.BankDAO">
    <select id="findAll" resultType="bank">
        select * from bank
    select>
    <insert id="insertBank" parameterType="bank">
        insert into bank values(#{id},#{name},#{money})
    insert>
    <delete id="deleteBank" parameterType="int">
        delete from bank where id=#{id}
    delete>
    <update id="updateBank" parameterType="bank">
        update bank
        <set>
            <if test="name != null">
                name=#{name},
            if>
            <if test="money !=0">
                money=#{money}
            if>
        set>
        <where>
            <if test="id !=0">
                id=#{id}
            if>
        where>
    update>
mapper>

  实体类:

public class Bank {
    private int id;
    private String name;
    private int money;
以及各 get/set 方法
}

  DAO层:

public interface BankDAO {
    public List findAll();//
    public void insertBank(Bank bank);
    public void deleteBank(int id);
    public void updateBank(Bank bank);
}

  services类:

@Service//通知spring new一个实例出来
@Transactional//开启自动事务,只有增删改需要,查询并不需要提交
public class BankService {
    @Resource
    private BankDAO bdao;

    public List fall(){
        return bdao.findAll();
    }

    public void save(Bank bank){
        bdao.insertBank(bank);
    }

    public void del(int uid){
        bdao.deleteBank(uid);
    }

    public void update(Bank bank){
        bdao.updateBank(bank);
    }
}

  控制层:(之前的Servlet)

/*  @RestController:告诉spring
 *  本类下所有添加的RequestMapping的方法的都是Servlet
 *  并且返回json格式
 * */
@RestController
public class BankCtrl {
    @Resource//按类型进行注入
    private BankService bankService;
    
    @RequestMapping("/all")//给该servlet起个名字
    public List find() {
        return bankService.fall();
    }
    @RequestMapping("/save")
    public String save(@RequestBody Bank bank){
        bankService.save(bank);
        return "完成增添工作";
    }
    @RequestMapping("/del")
    public String del(int uid){
        bankService.del(uid);
        return "完成删除工作";
    }
    @RequestMapping("/update")
    public String up(@RequestBody Bank bank){
        bankService.update(bank);
        return "完成修改工作";
    }
}

   启动:

@SpringBootApplication
@MapperScan("com.zyp.myspb1.dao")//扫描整个DAO层
public class Myspb1Application {
    public static void main(String[] args) {
        SpringApplication.run(Myspb1Application.class, args);
    }
}

 

测试这里用PostMan

Spring Boot 有内置Tomcat,默认端口号8080。直接运行main方法去postman测试即可

  查询:

 

  插入:(注:这里用json格式)

 

 

 

   修改:

 

   删除:

 

 

 

以上是关于Spring Boot框架的主要内容,如果未能解决你的问题,请参考以下文章

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

spring Boot必用依赖框架

Spring Boot框架的搭建