title: springboot-01
date: 2019-07-30 16:08:23
categories:
- 前端
- 搭建博客
tags: - 搭建博客
- 前端
- next
项目路径问题
- 不以/开始的相对路径,找资源,以当前资源的路径为基准,经常出现问题
- 以/开始的相对路径,找资源,以服务器路径为标准(http://localhost:3306)
- 从我的一些经验来看,我们一般css和js放在static目录下面,html等前端页面放在templates里面,如果需要引入static的页面可以使用相对路径,但是boot项目默认的路径有static和templates按道理是不需要这样子的,不知道为什么
控制反转(ioc)和依赖注入(di)
- 控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护,而不是传统的在你的对象内部直接控制
- DI依赖注入是控制反转的一种实现方式----创建对象并且组装对象之间的关系
面向接口编程
- 结构设计中,分清楚层次调用关系,每层只向上层提供一组功能接口,各层间仅仅依赖接口而非实现类
- 接口实现的变动不影响各层间的调用,这一点在公共服务中尤为重要
- 对于程序只定义一个结果标准,过程如何,看个人如何实现
spring注入
-
@PropertySource:加载指定的配置文件,将配置文件中的每一个属性的值,映射到这个组件中
-
@configurationProperties告诉springboot将本类中的所有属性和配置文件相关的配置进行绑定,profix=“xxx”,配置文件中的属性进行一一映射,默认从全局配置文件中获取值
-
使用全注解方式
- 配置类使用@configuration---->spring配置文件
- 使用@Bean给容器中添加组件
打包部署
- 侧边栏maven ,选中object,选中lifecycle,选中package等待打包,打成jar包后可以用java -jar的命令进行执行
- parent标签标识的是spring版本仲裁中心,以后我们导入依赖默认是不需要写版本,没有在dependencies中管理的依赖还是要写版本号
- spring-boot- starter-web:spring boot场景启动器,帮我们导入了web模块的正常运行的依赖的组成,springboot将所有的功能场景都抽取出来,做成一个一个启动器,要用什么功能就导入什么场景的启动器
主程序类
-
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } springboot的主配置类,运行这个类的main方法启动springboot项目
-
@SpringBootComfiguration:标注在某一个类上,表示这是一个springboot的配置类
-
configuration配置类上标注这个注解,配置类-配置文件 配置类也是容器中的一个组件,@component
-
@EnableAutoConfiguration 开启自动配置功能
-
@AutoConfigurationPackage 自动配置包 @Import(AutoConfigurationPackages.Registrar.class):spring的底层注解,导入的组建由AutoConfigurationPackages.Registrar.class将主配置所在包下面所有子包里面的所有组件,将主配置类@SpringBootApplication标注的类的所在包及下面所有子包里面的所有组建扫描到spring容器中
-
@Import(EnableAutoConfigurationImportSelector.class)选择需要导入那些组件,将所有需要导入的组建以全类名的方式放入容器,会给容器导入非常多的自动配置类,就是给这个场景配置号这些组件
-
- springboot在启动的时候从类的路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定这些值作为自动配置类导入容器中,自动配置类就生效,帮我们进行自动配置工作
配置文件加载位置
-
springboot启动后会扫描以下位置的application.properties或者application.yml文件作为spring boot的默认配置文件
- file:./config/
- file:./
- classpath:./config/
- classpath:./
优先级由高到低,高优先级的会覆盖低优先级的,springboot会从这4个文件全部加载主配置文件进行互补配置
-
同时我们还可以通过spring.config.location来改变默认的配置文件位置,项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置,指定配置文件和默认加载的文件共同起作用形成互补配置
java -jar .....jar -spring.config.location=配置文件位置