只是个人学习笔记,如果需要答复的话直接在文章底部留言,感谢。
须掌握以下内容:
环境约束:
MAVEN 设置
在settings.xml配置文件的profiles添加
IDEA设置
Configer - setting - Build Execution Deployment - Build Tools - Maven的
Maven home directory 选择自己的maven
使用User settions file 和Local repository
以浏览器发送hello请求,服务器接收请求并处理,响应发回helloworld字符串:
IDEA - Create New Project - 左侧Maven - 右侧选中jdk -next
spring官网给出实例 projects.spring.io/spring-boot/
@SpringBootApplication
标注一个主程序类,说明是一个SpringBoot项目
SpringApplicaiton.run(主程序类.class, args);
Controller/Service
在com.huangyichun下创建一个HelloController在Controller包下
给他一个@Controller注解
创建 public String hello(){} 注解@RequestMapping("/hello")
Return "hello world!";
再注解 @ResponseBody 因为你有返回值
并且返回的是Body 内容(应该是这个意思)
发送请求,在console能看到端口8080,则直接访问
localhost:8080/hello
https://docs.spring.io/spring-boot/docs/1.5.22.BUILD-SNAPSHOT/reference/html/
里面有个一maven依赖,导入到项目
可以将应用打包成一个可执行的jar包,服务器无需安装各种东西,
直接运行
IDEA左下角,菜单 - 右边的侧栏 - Maven Projects - spring-boot-01-xxx -
Lifecycle(生命周期) - package
打包完成,在console里看到打包号的目录 building jar :
直接使用 java -jar jar包的命令使用
Starter-parent 点进去 会发现还有一个父项目(一般做依赖)
Spring-boot-dependencies 真正管理spring Boot应用依赖管理
规定了很多版本……摩多,后面来说
-》 Spring-boot-dependencies 版本仲裁中心
所以我们导入依赖默认是不需要写版本的,当然也可以写
有些不在的就需要我们自己写
Spring Boot 帮我们自动仲裁了版本
Spring-boot-starter:spring-boot 场景启动器
web依赖 starter tomcat spring-web hibernate-validator(数据校验)
Jackson-databind spring-webmvc
@SpringBootConfiguration Spring Boot的配置类:
标注在某个类上,表示这个是一个Spring Boot的配置类
@Configuration 配置类上 来标注这个注解
配置类---配置文件(配置类也是容器中的组件@Component)
@EnableAutoConfiguration 开启自动配置功能
以前我们需要配置的东西,Spring Boot帮我们自动配置
告诉Spring开启自动配置功能,这样自动配置才能生效。
@AutoConfigurationPackage 自动配置包
@Import(AutoConfigurationPackages.Registrar.class)
@Import Spring的底层注解 给容器中导入一个组件;
AutoConfigutarionPackages.Refistrar.class;
这里出错了 原文:
将主配置类 @SpringBootApplication标注的类 所在的包及下面所有组件扫描到Spring容器中
所以能将controller下的包扫进来。
改为 componentScan的功能
AutoConfigurationPackage是将组件收集起来,供后面其他注解的使用
@Import(EnableAutoConfigurationImportSelector.class) 导入哪些组件的选择器
EnableAutoConfigurationImportSelector.class继承了
AutoConfigurationImportSelector类
重写isEnabled
在父类中 有一个selectImports
告诉Spring需要导入哪些组件
将所有需要导入的组件以全类名方式返回,这些会被添加到容器中。
会给容器中导入非常多的自动配置 xxAutoConfiguration
XXXAutoConfiguration 就是改场景需要的所有组件,并配置好这些组件
免去了手动编写配置,注入功能组件等功能。
SpringFactoiesLoader.loadFactoryNames(EnableAutoConfigutarion.classs, classLoader)
Spring Boot 在启动的时候,从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值。将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们自动配置工作。
J2EE的整体整合解决方案和自动配置都在Spring-boot-autoconfigure-1.5.9.RELEASE.jar
IDE都支持使用Spring的项目创建向导快速创建一个Spring项目
File - new - project - Spring Initializr - next
Group
Artiface
Type
Package
-> next
选择模块
安全 Security
数据校验 Validation
缓存 cache
Web - Web
-> next
然后项目会联网进行下载
还记得controller么
@Controller
Public class xxx{
@ResponseBoby
@RequestMapping("/hello") // 处理hello请求
Public String hello(){
Return "xxxxx";
}
}
@ResponseBody也可以放到class上 表名这个类的所有方法返回的数据直接给浏览器
如果是对象 转为Json数据
@ResponseBody
@Controller
还能结合成为@RestController
默认生成的Spring Boot项目的特点:
可以使用模板引擎 freemarker thymeleaf
如修改端口
在Application.properties中 server.port = 8081