Questions tagged «spring-boot»

Spring Boot是一个框架,可让您轻松创建以Spring为动力的生产级应用程序和服务,而无需大惊小怪。它对旨在供Spring的新老用户使用的Spring平台持保留态度。

11
Spring Boot War部署到Tomcat
我试图将Spring Boot应用程序部署到Tomcat,因为我想部署到AWS。我创建了一个WAR文件,但是即使它可见,它似乎也不能在Tomcat上运行。 详细信息: 0。这是我的应用程序: @Configuration @ComponentScan @EnableAutoConfiguration public class App { public static void main(String[] args) { SpringApplication.run(SampleController.class, args); } } @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/help") @ResponseBody String home() { String input = "Hi! Please use 'tag','check' and 'close' resources."; return input; } } application.properties具有以下内容: server.port=${port:7777} 在阅读了许多页面和问题解答之后,我在POM中添加了以下内容: http://maven.apache.org/xsd/maven-4.0.0.xsd“> …

3
@ConditionalOnProperty注释的目的是什么?
我刚刚修改了spring boot的配置,遇到了 @ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views") 从 org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration @Bean(name = { "connect/twitterConnect", "connect/twitterConnected" }) @ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views") public View twitterConnectView() { return new GenericConnectionStatusView("twitter", "Twitter"); } 我不了解此注释的目的。我猜想只有在属性值存在的情况下(例如“ spring.social”,“ auto-connection-views”),才可以使用bean。

1
Spring在没有@Autowired注解的情况下将依赖项注入构造函数中
我正在尝试这个官方Spring教程中的示例,并且对此代码有依赖性:https : //github.com/spring-guides/gs-async-method/tree/master/complete 如果您看一下AppRunner.java 课堂上的代码,我有两个问题: 服务器启动时,如果我在此类的构造函数中放置一个断点,则看起来像在构造函数中,GitHubLookupService是由spring提供的,使用@Service配置bean。但是,@Autowired构造函数上没有注释,那么在世界上该构造函数如何以正确的依赖关系进行调用?应该是null。 这是Spring Boot的自动假设吗? Spring是否看到“私有字段+构造函数参数”,并且假定它应该寻找合适的bean? 是Spring Framework还是Spring boot? 我缺少什么了吗? 如我所记得,必须为bean /服务等提供默认构造函数。为什么此类(AppRunner)没有默认构造函数?Spring如何知道应该使用参数运行构造函数?是因为它是唯一的构造函数吗?

9
如何在Spring Boot中为所有控制器指定前缀?
我有控制器映射/user和/order: @RestController @RequestMapping("/users") public class UserController { ... } @RestController @RequestMapping("/orders") public class OrderController { ... } 我想分别通过URLhttp://localhost:8080/api/users 和访问这些URL http://localhost:8080/api/orders。 如何在Spring Boot中实现这一目标?

12
如何使用Spring Boot提供位于Dropbox文件夹中的静态内容?
我有一个Spring Boot Web应用程序,我想提供位于Linode VPS上共享的Dropbox目录中的静态内容(〜/ Dropbox / images)。我读过Spring Boot将自动从 "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/", 但是我的Dropbox目录当然不在classpath上。 尽管我可以配置Apache来在我的Dropbox文件夹中提供图像,但是我想利用Spring Security将静态内容的访问限制为经过身份验证的用户。

27
Spring Boot程序找不到主类
我有一个程序在Eclipse中作为Spring boot App运行。该程序运行良好。然后我做了以下工作: 右键单击项目->运行方式-> Maven测试。 这是偶然的。然后,当我尝试再次将该程序作为Spring Boot应用程序运行时,它在下面抛出了以下错误。 Error: Could not find or load main class com.bt.collab.alu.api.webapp.Application 如何将应用程序指向主类?谢谢

14
IntelliJ 15,SpringBoot devtools livereload不起作用
Spring Boot devtools 1.3的新LiveReload功能存在问题。它不会在类更改时重新加载。我已经在IntelliJ @ Devoxx 2015上演示过它。我需要启用一些IDE设置吗?我正在通过IDE运行,而不是通过Gradle运行。我尝试启用“自动创建项目”,但似乎无济于事。 它似乎已正确加载并且正在寻找正确的路径 2015-11-23 05:55:30.592 DEBUG 4700 --- [ restartedMain] o.s.boot.devtools.restart.Restarter : Starting application com.myapp.Application with URLs [file:/E:/Projects/myapp/build/classes/main/, file:/E:/Projects/myapp/build/resources/main/] 我的文件 build.gradle buildscript { ext { springBootVersion = '1.3.0.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse-wtp' apply …


5
如何为Spring Boot Controller端点编写单元测试
我有一个带有以下内容的示例Spring Boot应用程序 引导主类 @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } 控制者 @RestController @EnableAutoConfiguration public class HelloWorld { @RequestMapping("/") String gethelloWorld() { return "Hello World!"; } } 为控制器编写单元测试的最简单方法是什么?我尝试了以下操作,但它抱怨无法自动连接WebApplicationContext @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = DemoApplication.class) public class DemoApplicationTests { final String BASE_URL = "http://localhost:8080/"; @Autowired private WebApplicationContext …

10
在春季启动项目中将CSS之类的静态文件放在哪里?
在我当前的spring-boot项目中,我的观点如下: <link href="signin.css" rel="stylesheet"/> 引用静态CSS文件。运行项目并访问引用此文件的视图之一时,会收到404 not found错误或403未经授权的错误,具体取决于我将文件放在项目中的位置。 到目前为止,我尝试了以下方法: src/main/resources/static/css (with this, I use css/signin.css instead of signin.css) src/main/resources/templates/static/css (with this, I use css/signin.css instead of signin.css) src/src/main/resources/templates/acesso (same folder of the html file) 什么类型的文件存储在正确的位置?



4
Spring Security 5替换OAuth2RestTemplate
在,和spring-security-oauth2:2.4.0.RELEASE等类中OAuth2RestTemplate,所有这些都已被标记为已弃用。OAuth2ProtectedResourceDetailsClientCredentialsAccessTokenProvider 从这些类的javadoc中,它指向Spring Security迁移指南,该指南暗示人们应迁移到核心Spring-security 5项目。但是,我在寻找如何在该项目中实现用例时遇到了麻烦。 如果您希望对应用程序的传入请求进行身份验证并且想要使用第三方OAuth提供程序来验证身份,则所有文档和示例都讨论了与第三部分OAuth提供程序集成的问题。 在我的用例中,我要做的就是RestTemplate向受OAuth保护的外部服务发出请求。目前OAuth2ProtectedResourceDetails,我使用客户ID和密码创建了一个,并将其传递给OAuth2RestTemplate。我还ClientCredentialsAccessTokenProvider向添加了一个自定义,该自定义OAuth2ResTemplate仅向我使用的OAuth提供程序所需的令牌请求添加了一些额外的标头。 在spring-security 5文档中,我找到了提到自定义令牌请求的部分,但该部分还是与第三方OAuth提供者对传入请求进行身份验证有关。目前尚不清楚如何将其与类似的东西结合使用,ClientHttpRequestInterceptor以确保对外部服务的每个传出请求都首先获得令牌,然后再将令牌添加到请求中。 同样,在上面链接的迁移指南中,引用了一个OAuth2AuthorizedClientService,它说对在拦截器中使用很有用,但是这看起来又像是依赖于这样的东西ClientRegistrationRepository,如果您想使用,它似乎在其中为第三方提供商维护注册。提供以确保对传入请求进行身份验证。 有什么方法可以利用spring-security 5中的新功能来注册OAuth提供程序,以便获得令牌以添加到应用程序的传出请求中?

6
MockMvc在Spring Boot 2.2.0中不再处理UTF-8字符。
在升级到新发布2.2.0.RELEASE的Spring Boot版本之后,我的一些测试失败了。似乎MediaType.APPLICATION_JSON_UTF8已弃用了,并且不再从未显式指定内容类型的控制器方法中将其作为默认内容类型返回。 测试代码如 String content = mockMvc.perform(get("/some-api") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andReturn() .getResponse() .getContentAsString(); 突然不再工作,因为内容类型不匹配,如下所示 java.lang.AssertionError: Content type Expected :application/json;charset=UTF-8 Actual :application/json 更改代码以.andExpect(content().contentType(MediaType.APPLICATION_JSON))解决此问题。 但是现在content,与预期的序列化对象进行比较时,如果对象中有任何特殊字符,则仍然不匹配。似乎.getContentAsString()默认情况下(不再)该方法不使用UTF-8字符编码。 java.lang.AssertionError: Response content expected:<[{"description":"Er hörte leise Schritte hinter sich."}]> but was:<[{"description":"Er hörte leise Schritte hinter sich."}]> Expected :[{"description":"Er hörte leise Schritte hinter sich."}] Actual :[{"description":"Er hörte leise …

2
如何预热Java类以避免缓慢的首次调用?
我正在做一个项目,我需要所有API调用花费少于1秒的时间,但是我遇到的问题是第一次调用每条路由的速度都慢于随后的路由。 目前,首次拨打/ login的时间为3.6秒,接下来的通话为170毫秒,其他所有路由都相同。 我发现-XX:+TraceClassLoading在第一次调用时使用了该类,这些类已加载到内存中,这导致了性能问题。 但是,我没有找到一种在启动时加载所有类的简便方法,对于每个新服务,我需要在ApplicationRunner中添加一个热身调用。 是否有人可以自动加载SpringBoot应用程序的类或预热其所有路由的解决方案?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.