我有一个简单的Spring Boot应用程序,它从JMS队列获取消息并将一些数据保存到日志文件中,但不需要Web服务器.有没有办法在没有Web服务器的情况下启动Spring Boot?
我正在编写一个Spring Boot应用程序,该应用程序使用几个@Configuration类中的一个,具体取决于文件中@Profile设置的类application.properties.
其中一个Configuration类使用REST接口,因此我将其spring-boot-starter-web作为依赖项包含在内.
这启动了一个嵌入式Tomcat实例,这很好.
问题是,其他配置文件不需要嵌入式服务器(例如,我使用JMS来处理传入的消息而不是REST).
有没有办法在@SpringBootApplication默认情况下阻止启动Tomcat,并且只将它用于REST配置类?例如,通过注释该类@EnableWebMVC
这是我的@Configuration课程的一个例子:
休息:
@Profile({"REST"})
@Configuration
@EnableWebMvc
public class HttpConfiguration{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
JMS:
@Profile({"JMS"})
@Configuration
@EnableJms
public class JMSConfiguration{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用 spring oAuthClient 版本 5.2.4.RELEASE 通过遵循 spring security https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2Client-authorized-manager-的文档链接 提供者
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
import org.springframework.security.oauth2.client.web.reactive.function.client.ServerOAuth2AuthorizedClientExchangeFilterFunction;
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizedClientRepository;
import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
import org.springframework.web.reactive.function.client.WebClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Mono;
@AllArgsConstructor
@Configuration
@Slf4j
public class WebClientConfig {
@Bean("AuthProvider")
WebClient webClient(ReactiveClientRegistrationRepository clientRegistrations, ServerOAuth2AuthorizedClientRepository authorizedClients) {
ServerOAuth2AuthorizedClientExchangeFilterFunction oauth = new ServerOAuth2AuthorizedClientExchangeFilterFunction(
clientRegistrations,
authorizedClients);
oauth.setDefaultOAuth2AuthorizedClient(true);
oauth.setDefaultClientRegistrationId("AuthProvider");
return WebClient.builder()
.filter(oauth)
.filter(this.logRequest())
.build();
}
private ExchangeFilterFunction logRequest() {
return ExchangeFilterFunction.ofRequestProcessor(clientRequest -> {
log.info("Request: [{}] {}", clientRequest.method(), clientRequest.url());
log.debug("Payload: {}", clientRequest.body());
return Mono.just(clientRequest);
});
} …Run Code Online (Sandbox Code Playgroud) java spring spring-security spring-boot spring-security-oauth2
当我开始学习spring-webflux时,我对这个组件有疑问.
我构建了这个简单的项目,使用maven来管理项目,并添加了关于spring-boot-starter-web和spring-boot-starter-webflux的依赖关系,如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.删除spring-boot-starter-web依赖项时,它可以正常工作.