Controller层像是一个服务员,他把客人(前端)点的菜(数据、请求的类型等)进行汇总什么口味、咸淡、量的多少,交给
厨师长(Service层),厨师长则告诉
沾板厨师(Dao 1)、汤料房(Dao 2)、配菜厨师(Dao 3)等(统称Dao层)我需要什么样的半成品,副厨们(Dao层)就负责完成厨师长(Service)交代的任务。不知道这个比喻是否合适。
根据网络资源整理: >
(1)默认 Spring Boot 项目结构,资源文件放置在 src/main/resources 中,测试的资源文件在 src/test/resources 中。
src/main/resources 与 src/test/resources 的区别:
(2)将项目打包后,解压 jar 可以发现原先 src/main/resources 目录下的资源文件已经被打包进来了:
(3)但有时我们的资源文件并不一定是放在 src/main/resources 目录下,比如我的项目通常会将资源文件放在 src/test/resources 目录下:
原因:根据实践经验表明,测试完后的配置项是最完整的,且经常会忘记替换正式版参数,因而选择将配置文件全部放置在 src/test/resources 目录下。
(4)又比如 mybatis 的 mapperxml 文件,我们习惯把它和 Mapperjava 放一起
(5)但上面这两种情况的资源文件,在使用 maven 打包时是不会被打包进 jar 的。这时候我们便要指定需要打包的资源文件,这个有如下两种方法可以实现。
(1)<resources> 标签位于 <build> 标签内,用于指定项目资源文件的位置。比如下面配置我们指定了 src/test/resources 也是资源文件目录:
(2)而对于写在包下的 Mapperxml 文件,我们则可以通过如下配置指明资源文件位置:
提示:其中 / 这样的写法,是为了保证各级子目录下的资源文件被打包。
(3)我们还可以通过 excludes 标签剔除不需要的资源:
(1)除了使用 <resources> 标签外,我们也可以使用 maven-resources-plugin 插件实现同样的目的。比如下面配置把 src/test/resources 目录下的资源文件打包到 classes 目录下:
(2)而对于写在包下的 Mapperxml 文件,我们也可以通过 maven-resources-plugin 插件将其打包到相应位置:
(3)使用 maven-resources-plugin 插件时,我们同样可以通过 excludes 标签剔除不需要的资源:
这个webxml信息并不符合我们的要求(这个版本旧,为23),我们可以通过新建一个web项目,或者直接拷贝下面的webxml信息,来覆盖掉上面的webxml信息:
42 再然后配置pomxml文件,添加maven编译插件,如下:
43 添加缺少的目录,并添加输出路径
Maven规定,必须创建以下几个包,并且分别对应相应的输出路径
src/main/resources
src/main/java
src/test/resources
src/test/java
431 项目上右键----build path----configure builder path,
我们可以看到Order and Export 目录下,有两个missing,我们随便点击其中一个,然后再点击右边的Up或者Down,最后点击“apply and close”即可。丢失的目录会在项目中显示出来。同时,你再点击到这个Order and Export目录的时候,Missing也会消失了。
432 然后我们再进入到Source目录,发现这里只有三个大目录,
接下来就能在Source目录下看到新添加的包,这个新加的包没有指定输出目录,需要进行修改,如下图:
53 再然后,项目右键----java build path,把现有的jdk15删除,然后添加jdk18的library;再然后设置java Compiler 为jdk18,如下图:
54 点击应用之后,maven update一下,应该就没问题了。最后项目目录下图所示:
注意: 在更改项目使用jdk版本的时候如果没有在pomxml文件中添加maven-compiler-plugin的话,会出现jdk修改失败,具体表现就是,你修改了Java build path 和Java compiler 但是,当你maven update之后,一切又都还原回去了。
第一步,访问 spring Initializr
第二步,填写你要创建springboot项目使用哪种方式,哪种语言,springboot哪个版本等信息,如下:
创建 Spring Boot 项目默认会在 src/main/resources 目录下生成一个全局配置文件 applicationproperties 。全局配置文件的作用是对一些默认配置进行修改。
Spring Boot 的参数配置除了使用 properties 文件之外,还可以使用 yml 文件。如果你喜欢用 yml 格式的配置文件可以将 applicationproperties 修改为 applicationyml 。
Spring Boot 应用程序有多种设置途径。Spring Boot 能从多种属性源获得属性,包括如下几处:
这个列表按照优先级排序,也就是说,任何在高优先级属性源里设置的属性都会覆盖低优先级属性源里设置的相同属性。例如,命令行参数会覆盖其它属性源里的属性。
applicationproperties 和 applicationyml 文件能放下如下四个位置:
同样,这个列表也是按照优先级排序。也就是说,/config 子目录里 applicationproperties 会覆盖应用程序 classpath 里的 applicationproperties 中的相同属性。
1、@ComponentScan:
新建SpringBoot项目时 会自动生成一个入口类 命名规则是项目名+Application 该类上面有个@SpringBootApplication 项目启动时系统会自动扫描这个类的同级以及下级目录 将需要的对象注入到IOC容器 在需要时通过DI(依赖注入)注入到需要的对象中 那么问题来了 程序是怎么确定需要扫描哪些包呢 这是因为在@SpringBootApplication中有个注解 如图:
通过该注解上的配置 才能准确定位需要扫描哪些包 。
由此我们可以进行延伸 如果我们需要臊面的资源不再该类的同级或者下级 我们只需要在项目入口类上配置上@ComponentScan("资源路径")
就可以将我们需要的外部(其他路径)资源加载到IOC容器中了
2、@Qualifier("byname") 通过name名 注入
3、@Primary 对于同一个类型下有多个实现 该注解可以标明哪个实现类是优先被注入的 如图:
此时会优先注入带有@Primary注解的bean 如下图:
4、@ConditionalOnProperty 该注解可以读取配置文件 根据配置文件的值来决定是否将bean注入到容器中
该注解中的三个参数:value 值为配置文件中配置项的名字 havingValue为值 matchIfMissing 的值为true和false 时针对没有配置项的情况下时是否注入
5、
@Getter lombok为实体类自动生成getter方法
@Setter lombok为实体类自动生成setter方法
@AllArgsConstructor lombok为实体类自动生成全参数构造方法
@NoArgsConstructor lombok为实体类自动生成无参数构造方法
@RequiredArgsConstructor lombok为实体类自动生成成员变量非空的参数构造方法
@NonNull lombok为实体类指定参数非空
实体类builder()name("muse")age(18)build()可以替换之前的setter方法赋值 不过需要在实体类上增加@Builder注解
但是一旦使用@Builder 就无法通过构造方法去实例化bean 因为@Builder会生成一个私有的构造方法 如果想使用构造方法实例化 可以配合使用NoArgsConstructor 或者手动新增一个无参构造
以上就是关于二、springboot配置文件全部的内容,包括:二、springboot配置文件、SpringBoot学习总结、springboot的目录结构作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)