Java真的不难(四十六)Spring Boot的入门

Posted 热爱飞行的小应学长

tags:

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

Spring Boot:

一、什么是Spring Boot?

我们知道前面学习的Spring框架需要写大量的XML文件去配置,而繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低

简单的说: Spring Boot就是为了解决Spring缺点而生的,主要是简化了使用 Spring 的难度,去掉了繁琐的配置
Spring Boot的核心功能: 起步依赖,自动配置。起步依赖就是将具备某种功能的坐标打包到一起, 并解决了Spring的jar包冲突问题。自动配置就是Spring Boot在底层给我们自动做了一些配置,所以spring Boot项目不编写配置文件也可以正常运行。


二、为什么学习Spring Boot?

Spring Boot官网:http://spring.io/

通过官网可以看到这样一张图:

Spring Boot: Build Anything——构建任何内容
Spring Cloud: Coordinate Anything——协调任何事情
Spring Cloud Data Flow: Connect everything——连接任何东西

简单的说: Spring Boot旨在尽可能快地启动和运行,并且只需最少的 Spring 前期配置(在后面案例中就可以体会到)


三、如何快速创建Spring Boot

现在我们可以通过两种方式去创建一个Spring Boot项目:

一、通过官网去配置后下载Jar包,导入IDEA:

配置官网:https://start.spring.io/

如图所示:

一些基本的配置信息:

也可以添加Web框架支持:

最后即可下载Jar包,解压后用IDEA导入即可。


二、直接使用IDEA创建:

上面的那种方法效率不高,在实际业务中都是直接使用IDEA去创建:

新建项目:


其实一些配置信息都是和网站配置是一样的


完成后直接创建,就可以得到以下界面

我们发现通过这样创建的Spring Boot项目和我们之前项目的构建基本上是一样的,以及每个包的层次结构等等

然后执行Maven刷新,下载对应的依赖即可


四、第一个Spring Boot项目

Demo02Application 这个是已经帮我们生成好了,不需要做更改:

@SpringBootApplication
public class Demo02Application 

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


接着我们只要去写一个控制层即可:

在controller目录下创建HelloController:

@Controller
@RequestMapping("/user")
public class HelloController 

    //调用业务,接收前端参数
    @GetMapping("/hello")
    @ResponseBody
    public String hello()
        return "hello";
    

到这里,我们就已经写完了!! 是不是很惊讶? 就写了这么点就可以运行吗? 是的没错,来看效果!!

打开Demo02Application,使用main方法启动:

若在控制台输出的是这样的结果,表示你启动成功啦

接着我们只要根据controller里面配置的URL到浏览器内输入即可:
我这里便是:http://localhost:8080/user/hello

结果:

当然也可以自己配置端口号(以及其他很多配置):
我们只要在resources/application.properties 下写这样一句话即可:

#更改默认的端口号
server.port=9090

pom.xml内依赖的解释:

        <dependency>
        <!--所有的SpringBoot依赖都是以spring-boot-starter开头-->
        <!--web依赖,TomCat,dispathcherServlet,xml -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--单元测试依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
        <!--打jar包插件-->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

五、Spring Boot 默认对Json的处理

首先在pojo下创建一个实体类user:

这里要给构造方法和get/set(很重要!!!)

public class user 
    private Integer id;
    private String name;
    private Integer age;

编写控制类UserController:

测试分别使用对象、列表、集合的返回对象,看Spring Boot是如何处理的

@RestController
@RequestMapping("/user")
public class UserController 

    //返回一个对象
    @ResponseBody
    @GetMapping("/user")
    public user getUser()
        return new user(1,"张三",25);
    

    @RequestMapping("/userList")
    public List<user> getUserList()
        List<user> userList = new ArrayList<>();
        userList.add(new user(2,"李四",18));
        userList.add(new user(3,"王五",19));
        return userList;
    

    @RequestMapping("/userMap")
    public Map<String,Object> getUserMap()
        Map<String,Object> userMap = new HashMap<>();
        user u = new user(4,"小王",21);
        userMap.put("籍贯:","浙江杭州");
        userMap.put("爱好:","运动");
        userMap.put("技能:","Java");
        return userMap;
    

测试:
分别输入三个URL:

http://localhost:8080/user/user
http://localhost:8080/user/userList
http://localhost:8080/user/userMap

分别在页面展示以下内容:

"id":1,"name":"张三","age":25
["id":2,"name":"李四","age":18,"id":3,"name":"王五","age":19]
"爱好:":"运动","籍贯:":"浙江杭州","技能:":"Java"

结论:方法不管是什么数据类型,Spring Boot都可以转成相应的 Json 格式

注意: 如果实体类内没有配置get/set方法,会报406错误,就是不能找到可以接受的类型,,即返回的格式不是期望接收的类型,导致了序列化失败,无法转化为json格式。


总之在使用Spring Boot后的感觉就是配置相比之前大量减少,提高了开发效率,这也就是Spring Boot的魅力吧!!!

好啦,本次文章到此结束,小伙伴的快去试试吧,去创建第一个Spring Boot项目吧!!冲冲冲

以上是关于Java真的不难(四十六)Spring Boot的入门的主要内容,如果未能解决你的问题,请参考以下文章

零基础学Java—throw关键字(四十六)

Java经典编程题50道之四十六

“全栈2019”Java多线程第四十六章:判断任意线程是否已持有写锁

Spring Boot(十六):使用Jenkins部署Spring Boot

Spring Boot 最新发布!Java 18 都加入了!!真的学不动了。。

spring boot(十六)使用Jenkins部署spring boot