如何在Spring应用程序中使用外部配置?
package hello.example2.Container
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import org.springframework.web.client.RestTemplate
@RestController
class ContainerController {
@RequestMapping("/container/{cid}")
public list(@PathVariable Integer cid) {
def template = new RestTemplate();
def container = template.getForObject("http://localhost:5050/container/" + cid.toString(), Container);
return container;
}
}
我想用配置选项(例如application.yml或application.properties)替换“ http:// localhost:5050 ”。
这是我的应用程序文件(Groovy):
package hello.example2
import groovy.transform.CompileStatic
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.context.annotation.Configuration
@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@CompileStatic
class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我试图设置“ @Configuration”和“ @EnableAutoConfiguration”,但老实说我不知道他们在做什么。我是Java / Groovy和Spring框架的新手(但通常不熟悉编程)。
我已经阅读了这些页面,但是没有完整的示例片段:
[2] https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
在配置文件(application.yml或application.properties)中,添加一个新条目:
endpointUrl: http://localhost:5050
然后将该属性注入您的控制器中:
@RestController
class ContainerController {
@Value("${endpointUrl}")
private String ednpointUrl;
@RequestMapping("/container/{cid}")
public list(@PathVariable Integer cid) {
def template = new RestTemplate();
def container = template.getForObject(endpointUrl+"/container/" + cid.toString(), Container);
return container;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句