概述
学习目录
StringBoot优点
单体应用与微服务
如果单体应用越来越大 该怎么维护、该怎么分工合作 所以引出微服务
每一个功能元素独立出来 ,可以通过功能元素的动态组合(比如这个功能元素需要多一点 我们就可以在这台服务器多放一点,少的少放一点,,还有些功能只有在需要的时候我们在复制一点,只是功能元素级别的复制 并没有复制整个应用)
1.节省调用资源 2.服务微化起来 每一个服务都是可以替换的、可独立升级的软件单元
微服务文档
掌握知识及环境要求
上面不会谷粒学院学习网址
给 maven的 settings.xm配置文件的 profiles标签 设置jdk-1.8
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
IDEA设置
编写SpringBoot 的helloWord
创建一个Maven工程
我们先使用普通maven项目改造成springboot项目 不直接创建springboot项目
2、导入依赖 spring boot相关的依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
编写一个主程序 启动Spring Boot应用
//todo 告诉SpringBoot 这是一个SpringBoot主程序应用
@SpringBootApplication//todo 来标记一个主程序类 说明这是一个SpringBoot应用
public class HelloWordMainApplication {
public static void main(String[] args) {
//spring应用启动起来
SpringApplication.run(HelloWordMainApplication.class,args);
}
}
编写相关的 Controller、 Service
@Controller
public class HelloController {
@ResponseBody//把字符串写到浏览器
@RequestMapping("/hello")//接收浏览器的hello请求
public String hello(){
return "Hello Spring Boot";
}
}
运行主程序测试
以前我们弄tomcat 现在直接去启动类跑方法
不需要做过多的配置 比如包扫描、视图解析器、前端控制器、等等以前springmvc那一套统统没配。直接应用就启动起来了 这仅仅是开发层面 在部署更方便
简化部署 层面来看
这个插件,可以将应用打包成一个可执行的ja包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包
(将这个应用打成a包,直接使用 java -jar的命令进行执行)
即使目标服务器没有装tomcat环境也没关系 因为自带了tomcat环境
下面这些jar包就是我们在导入springboot依赖的时候依赖进来的,打包的时候会带上
1、分析POM文件解析
1)spring boot 版本仲裁中心
2) spring boot 场景启动器,帮我们导入web模块正常运行所依赖的组件。
spring boot 将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里引入相关的starter,相关场景的所有依赖都会导入进来。
2、分析 主程序类,主入口类
这块注解视屏分析百度网盘链接 提取码:1111
注解 | 作用 |
---|---|
@SpringBootApplication | Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类, |
@SpringBootConfiguration: | Spring Boot的配置类; 标注在某个类上,表示这是一个Spring Boot的配置类; |
@Configuration: | 配置类上来标注这个注解;配置类 ----- 配置文件;配置类也是容器中的一个组件;@Component |
@EnableAutoConfiguration: | 开启自动配置功能;以前我们需要配置的东西,SpringBoot帮我们自动配置;这个注解告诉SpringBoot开启自动配置功能;这样自动配置才能生效; |
@AutoConfigurationPackage: | 自动配置包@Import(AutoConfigurationPackages.Registrar.class): |
@Import(EnableAutoConfigurationImportSelector.class); | 给容器中导入组件? |
EnableAutoConfigurationImportSelector: | 导入哪些组件的选择器;将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中; |
核心注解:@SpringBootApplication(组合注解)
Spring Boot应用标注在某个类上说明这个类是 SpringBoot的主配置类
Spring Boot就应该运行这个类的main方法来启动 SpringBoot应用
以上是普通maven项目转成springboot项目 完结 下面是IDEA直接创建springboot项目
IDEA使用 Spring Initializer快速创建 Spring Boot.项目(需要连网)
注意下面有个Package跟Group保持一样 当然的看你想要什么目录结构
点击Next 然后确定存放位置 点击Finish 他会连网从springboot官网上生成springboot项目
配置文件(SpringBoot使用一个全局的配置文件,配置文件名是固定的)
YAML语法
yml配置获取文件值应用实例
pom.xml加入下面依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
yml中的配置在application.properties写法为
因为IDEA默认UTF-8编码格式 而properties文件不是 所以会出现中文乱码情况 需要设置(建议提前设置,不然这里配置的参数是中文的在设置后全部乱码了)
@PropertySource&@lmportResource
@ConfigurationProperties(prefix = “people”)//这个表示默认从全局配置文件获取people中的属性值 如果东西太多导致配置文件太大了
因此想把一些跟SpringBoot无关的配置 提取出来然后通过@PropertySource指定
第一步
@ImportResource:导入 Spring的配置文件,让配置文件里面的内容生效
先说一下springboot不推荐这种写法 配置文件很多怎么办 推荐使用配置类的方式 等价于你的配置文件 这里先看一下配置文件形式的写法
第一步创建一个Spring文件
第二步创建一个组件 我这里在service下写个HellowService 弄好之后通过bean标签加载进来 上面截图所示
第三步 测试容器中到底有没有叫hellowService的
第四步 如果你直接运行必然是false Spring boot里面没有 Spring的配置文件,我们自己编写的配置文件,也不能自动识别
想让 Spring的配置文件生效,加载进来就需要在主配置类加@ImportResource注解
推荐使用@Bean给容器中添加组件
第一步 写个配置类
配置文件占位符
如果你想用前面设定过的值(例如people.lists=k1,l1,m1 我没注释掉 结果就是dog=Dao{name=‘k1,l1,m1_dao’, age=12}
注释掉了他在找不到 他就会把这个整体不变的拿过来 找到了就拿他得值)
Profile做多环境支持(开发、生产、测试环境)
新建个Demo来进行说明
下面启动默认 application.properties这个配置文件生效
但是上面这种激活哪个配置文件的方式总感觉麻烦 你的写很多个application-{profile}.properties
yml支持多文档块方式
激活方式
第二种:分命令行参数 还有个虚拟机参数
这样的(–spring.profiles.active=prod)
虚拟机参数:-Dspring.profiles.active=prod
第三种:你还可以把项目打包 来指定使用哪个配置文件
输入java -jar springboot-demo2-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
配置文件加载位置
这里注意一下打包的问题
打包它只打包src那里面的 外部的可是不打包进去的 所以配置文件不建议放到src外的
这个有必要了解一下 就是运维的时候 你还可以重新指定配置文件位置 比如你提前复制一份application.properties到某个盘符下 换上你想要的配置 项目打完包后 通过命令行参数指定新位置 是相同覆盖、互补配置
外部配置加载顺序
SpringBoott也可以从以下位置加载配置;优先级从高到低:高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置
分析红色部分 比如下面命令行参数
下面就是我们把打包好的jar包放在想要目录下 在写个配置文件放在一起 打开cmd java -jar 启动 该配置文件就会生效
配置文件配置原理
官方文档地址
这块视屏链接:提取码:1111
@Conditional扩展
日志框架
SpringBoot默认选用 SLF4j和logback;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐logging</artifactId>
</dependency>
给类路径下放上每个日志框架自己的配置文件即可;SpringBoot就不使用他默认配置的了
logback.xml:直接就被日志框架识别了;logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能。
最后
以上就是鲜艳蓝天为你收集整理的初学StringBoot 普通Maven项目转SpringBoot项目 以及IDEA直接创建SpringBoot项目,Springboot配置文件详解学习目录StringBoot优点单体应用与微服务掌握知识及环境要求上面不会谷粒学院学习网址给 maven的 settings.xm配置文件的 profiles标签 设置jdk-1.8IDEA设置编写SpringBoot 的helloWord简化部署 层面来看1、分析POM文件解析2、分析 主程序类,主入口类IDEA使用 Spring Initial的全部内容,希望文章能够帮你解决初学StringBoot 普通Maven项目转SpringBoot项目 以及IDEA直接创建SpringBoot项目,Springboot配置文件详解学习目录StringBoot优点单体应用与微服务掌握知识及环境要求上面不会谷粒学院学习网址给 maven的 settings.xm配置文件的 profiles标签 设置jdk-1.8IDEA设置编写SpringBoot 的helloWord简化部署 层面来看1、分析POM文件解析2、分析 主程序类,主入口类IDEA使用 Spring Initial所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复