zoukankan      html  css  js  c++  java
  • Java学习之Spring Boot入门

    Java学习之Spring Boot入门

    0x00 前言

    学习完ssm的整合后,开始来学习Spring Boot,在前面学习Spring的时候会发现使用Spring开发中配置Spring的环境会非常的繁琐,而Spring boot的出现就解决了这个问题。

    0x01 Spring Boot 概述

    Spring Boot 概述概述

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
    该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
    通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者
    

    Spring Boot 特点

    1. 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
    2. 内嵌Tomcat或Jetty等Servlet容器;
    3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
    4. 尽可能自动配置Spring容器;
    5. 提供准备好的特性,如指标、健康检查和外部化配置;
    6. 绝对没有代码生成,不需要XML配置。
    

    0x02 Spring Boot 入门

    导入spring boot起步依赖坐标。

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    

    导入web依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    

    SpringBoot要集成SpringMVC进行Controller的开发,要导入web依赖。

    Spring Boot 引导类

    Spring Boot 要通过Spring Boot的引导类,才能启动。

    引导类代码:

    @SpringBootApplication
    //注解标注当前类是引导类
    public class main {
        public static void main(String[] args) {
            SpringApplication.run(main.class);
        }
    }
    
    

    访问8080端口就可以看到服务器已经启动了。

    编写Controller

    
    package com.test.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class quickController {
        @RequestMapping("/quick")
        @ResponseBody
        public String quick(){
            return "hello springboot";
        }
    }
    

    0x03 Spring Boot配置

    SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件。

    propertie方式配置

    我们在Resources目录下创建application.properties文件。

    application.properties文件:

    #配置服务器端口
    server.port=8081
    #配置当前应用名称
    server.servlet.context-path=/demo1
    

    yml方式配置

    yml文件概述:

    
    YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
    YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
    
    YML文件的扩展名可以使用.yml或者.yaml。
    

    yml配置文件语法:

    name: xiaoming

    冒号后面必须加一个空格

    配置对象数据

    方式一:

    person:
      name: xiaoming
      age: 18
    

    这里需要注意空格对其。

    方式二:

    person: {name: xiaoming,age: 18}
    

    配置List 数据

    方式一:

    person: 
      - xiaoming
      - kfc
      - nc
    
    

    方式二:

    person: [xiaoming,kfc,nc]
    

    配置集合(对象类型)

    方式一:

    student:
      - name: zhangsan
        age: 18
        score: 100
      - name: lisi
        age: 28
        score: 88
      - name: wangwu
        age: 38
        score: 90
    

    方式二:

    person: [{name: tom,age: 18,addr: beijing},{name: xiaoming,age: 19,addr: beijing}]
    

    0x04 配置文件映射

    Value注解获取值

    @Controller
    public class QuickStartController {
    
        @Value("${person.name}")
        private String name;
        @Value("${person.age}")
        private Integer age;
    
    
        @RequestMapping("/quick")
        @ResponseBody
        public String quick(){
            return "springboot 访问成功! name="+name+",age="+age;
        }
    
    }
    

    ConfigurationProperties注解获取值

    @Controller
    @ConfigurationProperties(prefix = "person")
    public class QuickStartController {
    
        private String name;
        private Integer age;
    
        @RequestMapping("/quick")
        @ResponseBody
        public String quick(){
            return "springboot 访问成功! name="+name+",age="+age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    }
    

    使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方法才可以。

    0x05 Spring Boot 整合Mybatis

    需要整合第一步肯定是要导入起步依赖和数据库驱动的坐标。

      <!--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>
            </dependency>
    

    配置完依赖后,需要在application.properties里面去配置数据库的连接信息

    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=root
    
    #spring集成Mybatis环境
    #pojo别名扫描包
    mybatis.type-aliases-package=com.test.domain
    #加载Mybatis映射文件
    mybatis.mapper-locations=classpath:com/test/dao/*Mapper.xml
    

    编写一个实体类:

    package com.test.domain;
    
    public class User {
        private String name;
        private int id ;
        private String gender;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getGender() {
            return gender;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    }
    

    编写一个dao接口:

    
    @Mapper
    public interface UserMapper {
        List<User> query();
    }
    
    

    @Mapper标记该类是一个mybatis的mapper接口,可以被spring boot自动扫描到spring上下文中

    配置Mapper映射文件:

    <?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.test.dao.UserMapper">
        <select id="query" resultType="com.test.domain.User">
            select * from user
        </select>
    </mapper>
    

    最后编写controller

    public class mybatis_controller {
        @Autowired
        private UserMapper userMapper;
    
        @RequestMapping("/u")
        @ResponseBody
        public List<User> queryUser(){
            List<User> users = userMapper.query();
            return users;
        }
    
    }
    

    0x06 结尾

    和Spring 的配置相比Spring Boot的会简单不少。

  • 相关阅读:
    工业大数据的理论体系
    我的偶像王坚博士,一位执着的学者!
    云计算遇上区块链,会产生怎样的能量和火花?
    管好超时才能做好异步
    “AliOS之父”——阿里巴巴王坚博士
    Centos7开放及查看端口
    直连不同网段
    实施:帧中继
    网线标准
    以太网的帧结构
  • 原文地址:https://www.cnblogs.com/nice0e3/p/13632936.html
Copyright © 2011-2022 走看看