微服务是,把所有的功能独立做成模块,模块之间用http通信,springboot负责将所有的功能做成模块,springcloud负责所有模块中间的通信,springcloud data flow用来处理流式数据计算、批处理。
将项目打成jar包,并且用java -jar命令去运行它。
引入的插件有:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
里面用到了启动器,启动器是面对各种业务场景的依赖的汇总,比如我们需要满足邮件功能,那么我要导入的依赖就是启动器-邮件。
修改springboot自动配置的默认值,比如端口号等等。
yml和标记语言脱不了关系,它比xml更加简洁,xml需要配标签,而yml是以数据为中心,不需要配那么多标签。
yml
在yml配置好后,在类名上面加上@ConfigurationProperties(prefix = “配置文件中的根级名字”)标签,可以让配置文件生效。
.properties
和yml差不多,但是要注意的是,需要改变文件的编码方式,要不然会出现乱码: file encodings =》utf-8,后面的√打上。
如果想要在配置文件yml中出现提示,需要根据idea的提示去引入一个依赖。
在javaBean的类名上不加@ConfigurationProperties注解,而是直接在对应的属性上加@Value注解。
当只需要拿到单独的属性的时候,就用@value;专门写了一个javaBean和配置文件进行映射的时候,用@ConfigurationProperties。
如果我们一直将配置文件信息写在.properties里面,那么会很长,我可以将一些配置信息单独拉出去写一个配置文件,在javaBean上加注解@PropertySource(value = {“classpath:文件路径名”})和@ConfigurationProperties(prefix = “前缀名”),可以加载多个配置文件。
利用注解@ImportResource(locations = {“classpath:文件位置”}),这个注解加在主启动类上面:xxxxApplication。
使用@Configuration注解和@Bean注解就可以直接将配置类的属性添加到容器当中。
配置文件可以放在项目的很多地方,不同的地方有不同的优先级,比如高优先级的地方有配置文件,低优先级的地方也有配置文件,那么高优先级会覆盖低优先级的。
优先级为:
不同位置的配置文件是互补的,相同的设计才取决于高优先级的配置文件。
用命令行的方式去完成配置文件的修改:
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
多个配置用空格分开; --配置项=值
SpringBoot选用 SLF4j和logback;
1、将系统中其他日志框架先排除出去;
2、用中间包来替换原有的日志框架;
3、我们导入slf4j其他的实现
trace Springboot默认的日志级别是info及以上,这个级别可以在.properties文件里面修改:logging,level.包名=日志级别 在.properties文件里面修改:logging.file=文件路径(可以存放在项目根目录也可以加盘符去存在指定位置)。 类路径下放上每个日志框架自己的配置文件就可以了,springboot就不会用自己默认的框架了 不同配置文件的环境下如何指定不同的日志框架配置文件呢? 改名字为:logback-spring.xml,在日志文件名加上==-spring==,再到日志框架的配置文件里使用标签去设置日志生效的环境。 由于springboot自动给我们配置了很多文件,我们的springboot项目里面不像springmvc一样有web-info文件夹,所以根据查看到的管理静态资源映射的类,我们要通过导入webjar的方式去存放静态资源。 1)、所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源; webjars:以jar包的方式引入静态资源; http://www.webjars.org/ 2)、"/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射 localhost:8080/abc === 去静态资源文件夹里面找abc 3)、欢迎页; 静态资源文件夹下的所有index.html页面;被"/**"映射; localhost:8080/ 找index页面 4)、网页头像,所有的 **/favicon.ico 都是在静态资源文件下找; 查看自动装配的类发现,默认放在classpath:template/下。 编写一个配置类(@Configuration),是WebMvcConfigurerAdapter类型;不能标注@EnableWebMvc; 既保留了所有的自动配置,也能用我们扩展的配置; 尚硅谷B站Springboot学习视频日志存放位置?
如何指定日志框架的配置文件?
WEB开发
springboot对静态资源的映射规则
localhost:8080/webjars/jquery/3.3.1/jquery.js在访问的时候只需要写webjars下面资源的名称即可
<dependency>
<groupId>org.webjarsgroupId>
<artifactId>jqueryartifactId>
<version>3.3.1version>
dependency>
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/":当前项目的根路径
thymeleaf渲染的页面放在哪里?
扩展springmvc
//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// super.addViewControllers(registry);
//浏览器发送 /atguigu 请求来到 success
registry.addViewController("/atguigu").setViewName("success");
}
}
参考资料