Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件 ...

打印 上一主题 下一主题

主题 892|帖子 892|积分 2676

学习视频:【编程不良人】2021年SpringBoot最新最全教程
3.5 @SpringBootApplication详解

这是一个组合注解,就是由多个注解组成。下列注解红框内称为元注解(jdk提供)
@Target:指定注解作用范围  @Retention:指定注解什么时候生效


  • 重要注解
    @SpringBootConfiguration:自动配置Spring、SpringMVC相关环境
    @EnableAutoConfiguration:开启自动配置  自动配置的核心注解  自动与项目中引入第三方技术自动配置其环境  mybatis、redis、es、rabbitmq等第三方技术
    @ComponentScan:组件/注解扫描  保证扫描范围下的注解生效,扫描范围:当前包及其子包

  • SpringBoot内嵌的服务器传递参数进行测试

3.6 配置文件拆分以及加载外部配置文件


  • 区分测试环境和生产环境
    测试环境的配置文件一般命名为:application-dev.yml
    生产环境的配置文件一般命名为:application-prod.yml
  • 在公共配置环境里去决定激活哪个环境
    1. **application.yml**
    2. # 修改内嵌服务器端口号
    3. server:
    4.   port: 8081
    5. spring:
    6.   profiles:
    7.     active: **dev**  #**指定dev环境的配置文件生效**
    复制代码
  • 加载外部配置文件
    在设置中,下图的Program arguments填入下列格式 :
    - -spring.config.location=D:\Desktop\application-local-prod.yml
    等于号右边填绝对路径,即可完成加载。

3.7 创建SpringBoot的第二种创建方式


  • 通过module创建

    选择需要的依赖

    创建好了,.mvc、mvnw、mvnw.cmd 是在linux中运行的。
    .gitignore是git设置忽略文件的。HELP.md是介绍的文档。

    pom.xml
    1. .......
    2. <dependencies>
    3.    
    4.     <dependency>
    5.         <groupId>org.springframework.boot</groupId>
    6.         <artifactId>spring-boot-starter-web</artifactId>
    7.     </dependency>
    8.    
    9.     <dependency>
    10.         <groupId>org.springframework.boot</groupId>
    11.         <artifactId>spring-boot-starter-test</artifactId>
    12.         <scope>test</scope>
    13.     </dependency>
    14. </dependencies>
    15. <build>
    16.     <plugins>
    17.         <plugin>
    18.             <groupId>org.springframework.boot</groupId>
    19.             <artifactId>spring-boot-maven-plugin</artifactId>
    20.         </plugin>
    21.     </plugins>
    22. </build>
    复制代码
第四章、工厂创建对象


4.1 获取基本类型、对象
  1. application.yml
  2. # 声明基本属性注入
  3. name: 小陈
  4. age: 23
  5. price: 23.2
  6. maps: "{'asd':'小红','qwe':'大米'}" # 注意:@Value注入 格式要用 #{${"maps"}}
  7. birthday: 2012/1/3 15:13:56 # 默认日期格式要写成: yyyy/mm/dd  HH:MM:ss
  8. lists: jack,xiaoming,mike,abcd
  9. # 声明对象方式注入
  10. orders:
  11.   age: 21
  12.   name: "小红"
复制代码
  1. @ConfigurationProperties(value = "orders")
  2. @Component
  3. public class User {
  4.     private String name;
  5.     private Integer age;
  6.     get....
  7.                 set....
  8. }
复制代码
  1. @Value("${name}")
  2.     private String name;
  3.     @Value("${birthday}")
  4.     private Date birthday;
  5.     @Value("${lists}")
  6.     private List<String> lists;
  7.     @Value("#{${maps}}")
  8.     private Map<String,String> maps;
  9.     @RequestMapping("hello1")
  10.     public String hello1() {
  11.         System.out.println("name = " + name);
  12.         System.out.println("birthday = " + birthday);
  13.         for (String list : lists) {
  14.             System.out.println("list = " + list);
  15.         }
  16.         System.out.println("maps = " + maps);
  17.         return "hello1";
  18.     }
  19.     @Autowired
  20.     private User user;
  21.     @RequestMapping("hello3")
  22.     public String hello3() {
  23.         System.out.println("name = " + user.getName());
  24.         System.out.println("age = " + user.getAge());
  25.         return "hello3";
  26.     }
复制代码
通过这种获取对象的方式,要注意:一定要有set方法。
@ConfigurationProperties(value/prefix = "orders")的参数,value和prefix是一样的
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-configuration-processor</artifactId>
  4.    
  5.     <optional>true</optional>
  6. </dependency>
复制代码
引入这个依赖后,我们在配置文件中输入被@ConfigurationProperties修饰的对象名后,就会有对其成员变量名的提示


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表