SpringBoot
SpringBoot是什么?
Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。
同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑
注1:敏捷式开发
注2:spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,
就像maven整合了所有的jar包,spring boot整合了所有的框架
idea的Springboot项目简单演示
如图:
选中最低版本
最后Next即可
注意事项
注1:包和类不能乱改,只能在com.zking.springboot01建子包,因为程序只加载Application.java所在包及其子包下的内容
com.zking.springboot01
controller
service
mapper
model
注2:内嵌的Tomcat
1.使用内嵌Tomcat的好处
内置: web应用之间互不影响(springcloud),
外置:反之相互影响
2.访问地址简化
外置
http://localhost:8080/mvc/xxx
内置
http://localhost:8080/xxx ( 内置不需要项目名)
测试代码
在com.zking.springboot02下创建一个Controller包,controller包下再建一个HelloController类
看图:
注意:这里@RestController=@Controller+@ResponseBody
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello springboot 你大爷";
}
@RequestMapping("/say1")
public String say1(String name){
return name + "say hello springboot 你大爷";
}
@RequestMapping("/say2/{name}")
public String say2(@PathVariable("name") String name){
return name + "say hello springboot 你大爷";
}
@RequestMapping("/json")
public Map returnJson(){
Map map = new HashMap();
map.put("success",true);
map.put("msg","恭喜你中奖了!!!");
return map;
}
}
测试链接
http://localhost:8080/hello
http://localhost:8080/say1?name=张三
http://localhost:8080/say2/李四
http://localhost:8080/json
测试效果图:
效果2
效果3
效果4
springboot中的配置文件( 内置属性)
自带属性
注意:实际上项目开发的时候Port=80,Context-path=/,以下配置只为讲解相关知识点
找到如图:
1.默认时80端口,这里修改90,到时只要在访问路径中修改端口即可
例如:http://localhost:8080/hello 改为http://localhost:8089/hello ,否则报错。
2.也可在里面添加一个项目名,在图中设置端口下,添加server.servlet.context-path=/springboot,
访问时:http://localhost:8089/springboot/hello
3.小知识点,这样做比较看顺眼
自定义属性配置
4,我们自定义一个user
user:
uname: zs
pwd: 12345
在HellController中使用
@Value("${user.uname}")
private String uname;
@Value("${user.pwd}")
private String pwd;
@RequestMapping("/ces")
public Map ces(){
Map map = new HashMap();
map.put("uname",uname);
map.put("pwd",pwd);
return map;
}
这个配置有些idea可能出错,默认的就是80端口和 / ,所以删除即可。
server:
servlet:
context-path: /
port: 80
属性封装类
一旦出现自定义属性过多,那么使用的时候会非常繁琐,那么我们会将自定义属性向上抽取进行封装。
5,如图这样,属性过多。的解决方法
1.1首先在pom.xml中插入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
1.2
1.3MysqlEntiy 类
package com.zking.demo.configurationProperties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author因果
* @site www.xiaomage.com
* @company xxx公司
* @create 2020-11-26 19:30
*/
@Component
@Data
@ConfigurationProperties(prefix = "user")
public class MysqlEntiy {
private String uname;
private String pwd;
private String sex;
private String uage;
private String ded;
private String geda;
}
1.4,在controller里
@Autowired
private MysqlEntiy mysqlEntiy;
@RequestMapping("/say4")
public MysqlEntiy say4(){
return mysqlEntiy;
}
最后测试效果图:
总结
springboot入门
创建,记得勾选稳定版本,中最低的,不然可能要加载很久。
创包,记住,必须在那个包下。
端口,默认