Spring Boot---(1)入门及简单案例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1021979964/article/details/85692214

什么是Spring Boot?

       随着动态语言的流行(Ruby,Groovy,Scala,Node.js),Java的开发显得格外的笨重,繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。

       在上述环境下,Spring Boot应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让项目快速的运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring 框架,使用Spring Boot可以不用或者很少的Spring配置。

优点:

1、快速构建项目。

2、对主流开发框架的无配置集成。

3、项目可独立运行,无须外部依赖Servlet容器。

4、提供运行时的应用监控。

5、极大的提高了开发、部署效率。

6、与云计算的天然集成。

Spring Boot快速入门

      

1.创建Project

2.创建Spring Initializr项目(Maven项目也可以)

3.设置Group、Artifact等...

4.可以不用选这些,选上后再pom文件会自动加入其依赖项

5.创建项目完成

6.创建好的项目会有以下这些,java中放置各类后台源码,resource存放资源文件,static存放前端的静态文件,templates存放html文件,application.properties里是各类配置信息。

7.设置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 http://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.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.kevin.boot</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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

8.本人比较喜欢使用yml形式的文件,所有将application.properties改成application.yml

server:
  port: 8080
  servlet:
    context-path: /demo
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/microservice
    username: root
    password: 123456
  thymeleaf:
    prefix: classpath:/templates/
    cache: false
  mvc:
    static-path-pattern: /static/**

9.到templates文件中新建index.html文件

<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Hello World:这是动态访问的页面</h1>
</body>
</html>

10.DemoApplication.java

package com.kevin.boot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@MapperScan(basePackages = {"com.kevin.boot.mapper"})
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

11.UserController.java

package com.kevin.boot.controller;

import com.google.gson.Gson;
import com.kevin.boot.entity.User;
import com.kevin.boot.service.UserService;
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 java.util.List;

/**
 * @author kevin
 * @version 1.0
 * @description
 * @createDate 2019/1/3
 */
@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/")
    public String index() {
        // 动态访问页面
        return "index";
    }

    @RequestMapping("/selectAll")
    @ResponseBody
    public String selectAll(){
        List<User> users = userService.selectAll();
        Gson gson = new Gson();
        // 返回json数据
        return gson.toJson(users);
    }

}

12.User.java

package com.kevin.boot.entity;

import java.io.Serializable;

/**
 * @author kevin
 * @version 1.0
 * @description
 * @createDate 2019/1/3
 */
public class User implements Serializable {

    private Integer id;

    private String username;

    private String name;

    private Integer age;

    private Double balance;

    public User() {
    }

    public User(Integer id, String username, String name, Integer age, Double balance) {
        this.id = id;
        this.username = username;
        this.name = name;
        this.age = age;
        this.balance = balance;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", balance=" + balance +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Double getBalance() {
        return balance;
    }

    public void setBalance(Double balance) {
        this.balance = balance;
    }
}

13.UserMapper.java

package com.kevin.boot.mapper;

import com.kevin.boot.entity.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author kevin
 * @version 1.0
 * @description
 * @createDate 2019/1/3
 */
public interface UserMapper {

    @Select("select * from user")
    List<User> selectAll();
}

14.UserService.java

package com.kevin.boot.service;

import com.kevin.boot.entity.User;

import java.util.List;

/**
 * @author kevin
 * @version 1.0
 * @description
 * @createDate 2019/1/3
 */
public interface UserService {

    List<User> selectAll();
}

15.UserServiceImpl.java

package com.kevin.boot.service.impl;

import com.kevin.boot.entity.User;
import com.kevin.boot.mapper.UserMapper;
import com.kevin.boot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author kevin
 * @version 1.0
 * @description
 * @createDate 2019/1/3
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> selectAll() {
        return this.userMapper.selectAll();
    }
}

16.访问动态页面:http://localhost:8080/demo/

17.访问得到json数据:http://localhost:8080/demo/selectAll

18.如果需要部署的话,在mvn命令中输入

mvn clean package

19.在cmd中到jar路径执行

java -jar demo-0.0.1-SNAPSHOT.jar

这个Springboot的项目就搞定了,也不需要部署到tomcat。可以直接用jar执行,也可以交给tomcat管理部署

猜你喜欢

转载自blog.csdn.net/qq1021979964/article/details/85692214
今日推荐