• 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);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    在controller目录下创建HelloController:

    @Controller
    @RequestMapping("/user")
    public class HelloController {
    
        //调用业务,接收前端参数
        @GetMapping("/hello")
        @ResponseBody
        public String hello(){
            return "hello";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

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

    若在控制台输出的是这样的结果,表示你启动成功啦
    在这里插入图片描述
    接着我们只要根据controller里面配置的URL到浏览器内输入即可:
    我这里便是:http://localhost:8080/user/hello

    结果:
    在这里插入图片描述

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

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

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    五、Spring Boot 默认对Json的处理

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

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

    public class user {
        private Integer id;
        private String name;
        private Integer age;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    编写控制类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;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    测试:
    分别输入三个URL:

    http://localhost:8080/user/user
    http://localhost:8080/user/userList
    http://localhost:8080/user/userMap
    
    • 1
    • 2
    • 3

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

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

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

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


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

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

    在这里插入图片描述

  • 相关阅读:
    「中秋来袭」没想到,用OpenCV竟能画出这么漂亮的月饼「附源码」
    Spring的Bean生命周期+bean注入+项目启动时正确姿势初始化数据的五种方式
    Java集合面试题&知识点总结(上篇)
    Java的日期与时间java.util.TimeZone简介说明
    堪称全网最详细的Java八股面试文,面试必备(附答案)
    Vue入门(二)
    小程序对接停车场支付流程思考
    洛谷 P1021 邮票面值设计
    1688商品详情API接口(item_get-获得1688商品详情接口),1688API接口系列
    企业如何加强合同风险控制?
  • 原文地址:https://blog.csdn.net/m0_57310550/article/details/125475548