网站怎么做竞价推广,腾讯云手动搭建wordpress个人站点,团队拓展活动,网站解析一般什么时候通俗易懂的SpringBoot教程—day1—教程介绍
教程介绍#xff1a;
初级教程#xff1a; 一、 Spring Boot入门 二、 Spring Boot配置 三、 Spring Boot与日志 四、 Spring Boot与Web开发 五、 Spring Boot与Docker#xff1a;Docker容器 六、 Spring Boot与数据访问#x…通俗易懂的SpringBoot教程—day1—教程介绍
教程介绍
初级教程 一、 Spring Boot入门 二、 Spring Boot配置 三、 Spring Boot与日志 四、 Spring Boot与Web开发 五、 Spring Boot与DockerDocker容器 六、 Spring Boot与数据访问JDBC、mybatis 七、 Spring Boot启动配置原理 八、 Spring Boot自定义starters
高级教程 九、 Spring Boot与缓存 十、 Spring Boot与消息 十一、 Spring Boot与检索 十二、 Spring Boot与任务 十三、 Spring Boot与安全 十四、 Spring Boot与分布式 十五、 Spring Boot与开发热部署 十六、 Spring Boot与监控管理
**springboot简介**用来简化spring应用开发约定大于配置
背景J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大
解决方案“ Spring全家桶”时代。 Spring Boot J2EE一站式解决方案 Spring Cloud 分布式整体解决方案 优点 – 快速创建独立运行的Spring项目以及与主流框架集成快速创建独立运行的Spring项目 – 使用嵌入式的Servlet容器应用无需打成WAR包嵌入式servlet – starters自动依赖与版本控制starter启动器自动依赖 – 大量的自动配置简化开发也可修改默认值约定大于配置 – 无需配置XML无代码生成开箱即用 – 准生产环境的运行时应用监控 – 与云计算的天然集成
了解一下微服务
单体应用 单体应用和微服务的比较
2014martin fowler提出来 微服务架构风格服务微化 一个服务应该是一组小型的服务可以通过HTTP方式来进行交互 单体应用和微服务 单体应用ALL in one 微服务每个功能元素最终都是可独自升级可独自替换的软件单元。
详情可参考https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa
用SpringBoot创建一个HelloWorld项目
一个功能 浏览器发送hello请求服务器接受请求并处理响应Hello World字符串 1、创建一个maven工程jar 2、导入spring boot相关的依赖
parent
groupIdorg.springframework.boot/groupId
artifactIdspring‐boot‐starter‐parent/artifactId
version1.5.9.RELEASE/version
/parent
dependencies
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring‐boot‐starter‐web/artifactId
/dependency
/dependencies3、编写一个主程序启动Spring Boot应用
/**
* SpringBootApplication 来标注一个主程序类说明这是一个Spring Boot应用
*/
SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}4、编写相关的Controller、Service Controller
public class HelloController {
ResponseBody
RequestMapping(/hello)
public String hello(){
return Hello World!;
}
}5、运行主程序测试 6、简化部署 !‐‐ 这个插件可以将应用打包成一个可执行的jar包‐‐
build
plugins
plugin
groupIdorg.springframework.boot/groupId
artifactIdspring‐boot‐maven‐plugin/artifactId
/plugin
/plugins
/build将这个应用打成jar包直接使用java -jar的命令进行执行
Hello World探究 1、POM文件
parent
groupIdorg.springframework.boot/groupId
artifactIdspring‐boot‐starter‐parent/artifactId
version1.5.9.RELEASE/version
/parent
他的父项目是
parent
groupIdorg.springframework.boot/groupId
artifactIdspring‐boot‐dependencies/artifactId
version1.5.9.RELEASE/version
relativePath../../spring‐boot‐dependencies/relativePath
/parent
Spring Boot的版本仲裁中心他来真正管理Spring Boot应用里面的所有依赖版本所以以后我们导入依赖默认是不需要写版本没有在dependencies里面管理的依赖自然需要声明版本号
2、启动器
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring‐boot‐starter‐web/artifactId
/dependencyspring-boot-starter-web spring-boot-starterspring-boot场景启动器帮我们导入了web模块正常运行所依赖的组件 Spring Boot将所有的功能场景都抽取出来做成一个个的starters启动器只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
2、主程序类主入口类
/**
* SpringBootApplication 来标注一个主程序类说明这是一个Spring Boot应用
*/
SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类SpringBoot 就应该运行这个类的main方法来启动SpringBoot应用
Target(ElementType.TYPE)
Retention(RetentionPolicy.RUNTIME)
Documented
Inherited
SpringBootConfiguration
EnableAutoConfiguration
ComponentScan(excludeFilters {
Filter(type FilterType.CUSTOM, classes TypeExcludeFilter.class),
Filter(type FilterType.CUSTOM, classes AutoConfigurationExcludeFilter.class) })
public interface SpringBootApplication {SpringBootConfiguration:Spring Boot的配置类标注在某个类上表示这是一个Spring Boot的配置类 Configuration:spring的配置类配置类上来标注这个注解 配置类类似于配置文件配置类实际上也是容器中的一个组件Component
EnableAutoConfiguration开启自动配置功能 以前我们需要配置的东西Spring Boot帮我们自动配置EnableAutoConfiguration告诉SpringBoot开启自 动配置功能这样自动配置才能生效
AutoConfigurationPackage
Import(EnableAutoConfigurationImportSelector.class)
public interface EnableAutoConfiguration {AutoConfigurationPackage自动配置包将主配置类SpringBootApplication标注的类的所在包及下面所有子包里面的所有组件扫描到Spring容器
Import(AutoConfigurationPackages.Registrar.class) Spring的底层注解Import给容器中导入一个组件导入的组件由AutoConfigurationPackages.Registrar.class决定
Import(EnableAutoConfigurationImportSelector.class) 用来判断给容器中导入组件 EnableAutoConfigurationImportSelector导入哪些组件的选择器 将所有需要导入的组件以全类名的方式返回这些组件就会被添加到容器中 会给容器中导入非常多的自动配置类xxxAutoConfiguration就是给容器中导入这个场景需要的所有组件 并配置好这些组件
有了自动配置类免去了我们手动编写配置注入功能组件等的工作 SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader)
Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值将 这些值作为自动配置类导入到容器中自动配置类就生效帮我们进行自动配置工作以前我们需要自己配置的东 西自动配置类都帮我们 J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar
使用Spring initialize快速搭建SpringBoot工程
IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目选择我们需要的模块向导会联网创建Spring Boot项目 默认生成的Spring Boot项目主程序已经生成好了我们只需要我们自己的逻辑resources文件夹中目录结构 static保存所有的静态资源 js css images templates保存所有的模板页面Spring Boot默认jar包使用嵌入式的Tomcat默认不支持JSP页面可以使用模板引擎freemarker、thymeleaf application.propertiesSpring Boot应用的配置文件可以修改一些默认设置