码迷,mamicode.com
首页 > 编程语言 > 详细

springboot配置

时间:2019-11-05 01:23:20      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:实体   文件   属性   EAP   pac   tco   prope   order   reg   

1、自定义静态资源访问

第一种方式

1、配置类

@Configuration

public class WebMvcConfig implements WebMvcConfigurer {

    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        //将所有D:\\springboot\\pic\\ 访问都映射到/myPic/** 路径下

        registry.addResourceHandler("/myPic/**").addResourceLocations("file:D:\\springboot\\pic\\");

    }

}

 

上面的意思就是:将所有D:/springboot/pic/ 访问都映射到/myPic/** 路径下

2、重启项目

例如,在D:/springboot/pic/中有一张logo.jpg图片

在浏览器输入:http://localhost:8080/myPic/logo.jpg即可访问。

第二种方式

首先,我们配置application.properties

web.upload-path=D:/springboot/pic/

spring.mvc.static-path-pattern=/**

spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\

  classpath:/static/,classpath:/public/,file:${web.upload-path}

注意:

web.upload-path:这个属于自定义的属性,指定了一个路径,注意要以/结尾;

spring.mvc.static-path-pattern=/**:表示所有的访问都经过静态资源路径;

spring.resources.static-locations:在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则staticpublic等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。

然后,重启项目

例如,在D:/springboot/pic/中有一张8.png图片

在浏览器输入:http://localhost:8080/8.png 即可访问。

2、自定义属性及读取

我们可以在application.yml文件中,配置一些常量或者其他参数配置。读取的时候通过Spring@Value(${属性名})注解即可。

 

1)、在application.yml定义几个常量:

offcn_ip:

         1.1.1.1

offcn_port:

           9999

 

(2)、编写Controller类读取自定义属性

@RestController

public class HelloConfigController {

@Value("${offcn_ip}")

private String offcn_ip;

 

@Value("${offcn_port}")

private String offcn_port;

 

@GetMapping("/getvalue")

public String getValue() {

return "ip:"+offcn_ip+" port:"+offcn_port;

}

}

访问http://localhost:8888/java001/getvalue

2、实体类属性赋值

当属性参数变多的时候,我们习惯创建一个实体,用实体来统一接收赋值这些属性。

(1)、定义配置文件

userbody:

  name: 优就业

  password: 123456

  birthday: 1992.10.28

  mobile: 13802789765

  address: 北京市朝阳区    

 

(2)、创建实体类

 

@ConfigurationProperties(prefix="userbody")

public class UserBody {

 private String name;

    private String password;

    private String birthday;

    private String mobile;

    private String address;

}

提供setter、getter、以及toString

需要在实体类上增加注解@ConfigurationProperties,并指定prrfix前缀。

 

(3)、编写Controller调用属性bean

 

@RestController

@EnableConfigurationProperties({UserBody.class})

public class HelloControllerBean {

@Autowired

    UserBody userbody;

 

    @GetMapping("/getUser")

    public String getUser(){

        return userbody.toString();

    }

 

EnableConfigurationProperties注解需要加在调用类上,或者加在启动类SpringbootSimpleApplication上也可以。

访问地址:http://localhost:8888/java001/getUser

 

1、多环境配置文件

使用多个yml配置文件进行配置属性文件

可以使用多个yml来配置属性,将于环境无关的属性放置到application.yml文件里面;通过与配置文件相同的命名规范,创建application-{profile}.yml文件 存放不同环境特有的配置,例如 application-test.yml 存放测试环境特有的配置属性,application-prod.yml 存放生产环境特有的配置属性。

 

通过这种形式来配置多个环境的属性文件,在application.yml文件里面spring.profiles.active=xxx来指定加载不同环境的配置,如果不指定,则默认只使用application.yml属性文件,不会加载其他的profiles的配置。

(1)、创建application-dev.yml

server:

  port: 8003

  servlet:

    context-path: /java003

    

 

(2)、创建application-test.yml

server:

  port: 8001

  servlet:

    context-path: /java001

    

 

(3)、创建application-prod.yml

server:

  port: 8002

  servlet:

    context-path: /java002

 

(4)、修改application.yml

spring:

   profiles:

    active: test

 

通过设置,active: 的值对应不同的{profile}就可以使对应的配置文件生效。

springboot配置

标签:实体   文件   属性   EAP   pac   tco   prope   order   reg   

原文地址:https://www.cnblogs.com/rex-713/p/11795820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!