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 这个是已经帮我们生成好了,不需要做更改:
@SpringBootApplicationpublic class Demo02Application {public static void main(String[] args) {SpringApplication.run(Demo02Application.class, args);}}
接着我们只要去写一个控制层即可:
在controller目录下创建HelloController:
@Controller@RequestMapping("/user")public class HelloController {//调用业务,接收前端参数@GetMapping("/hello")@ResponseBodypublic String hello(){return "hello";}}
到这里,我们就已经写完了!! 是不是很惊讶? 就写了这么点就可以运行吗? 是的没错,来看效果!!
打开Demo02Application,使用main方法启动:
若在控制台输出的是这样的结果,表示你启动成功啦
接着我们只要根据controller里面配置的URL到浏览器内输入即可:
我这里便是:http://localhost:8080/user/hello
结果:
当然也可以自己配置端口号(以及其他很多配置):
我们只要在resources/application.properties 下写这样一句话即可:
#更改默认的端口号server.port=9090
pom.xml内依赖的解释:
<dependency><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><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/userhttp://localhost:8080/user/userListhttp://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项目吧!!冲冲冲