Tag: spring boot

如何在Spring启动中实现循环队列使用者

我正在构建一个消息驱动的服务,它将在一个集群中运行,需要以循环方式从RabbitMQ队列中提取消息。 该实现目前正在逐步将消息从队列中拉出,导致一些服务器得到备份而其他服务器处于空闲状态。 当前的QueueConsumerConfiguration.java如下所示: @Configuration public class QueueConsumerConfiguration extends RabbitMqConfiguration { private Logger LOG = LoggerFactory.getLogger(QueueConsumerConfiguration.class); private static final int DEFAULT_CONSUMERS=2; @Value(“${eventservice.inbound}”) protected String inboudEventQueue; @Value(“${eventservice.consumers}”) protected int queueConsumers; @Autowired private EventHandler eventtHandler; @Bean public RabbitTemplate rabbitTemplate() { RabbitTemplate template = new RabbitTemplate(connectionFactory()); template.setRoutingKey(this.inboudEventQueue); template.setQueue(this.inboudEventQueue); template.setMessageConverter(jsonMessageConverter()); return template; } @Bean public Queue inboudEventQueue() { return new […]

弹簧控制器中的圆形视图

我正在尝试在Spring控制器中提供静态资源。 我有一个index.html文件,应该返回给每个请求。 我的控制器是: @Controller public class IndexController { @RequestMapping(value = “/**”, method = RequestMethod.GET) public String index() { return “index.html”; } } 我还添加了资源处理程序: @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(“/**”).addResourceLocations(“classpath:/”); } 但最后我有以下exception: 圆形视图路径[/index.html]:将再次调度回当前处理程序URL [/index.html]。 检查您的ViewResolver设置! (提示:由于生成默认视图名称,这可能是未指定视图的结果。) 我明白,在我的配置中,所有请求都将由我的Spring控制器处理。 因此,当我请求,例如http://localhost/someText ,该请求将与我的控制器一起处理,然后我的控制器发送重定向到//localhost/index.html ,此请求转到Spring的DispatcherServlet然后重定向到我的再次控制器,导致上面的exception。 此外,我已经尝试了一些选项:制作网页filter,将我的请求处理到/index.html而不是通过spring servlet,但是通过默认的(在我的情况下是默认的服务器的默认服务),但是这是不可能的,因为我的应用程序不是打包为war,我的index.html文件位于/src/java/resources 。 实际上我发现,对我来说主要的问题是在我的请求的Spring的DispatcherServlet处理程序( //localhost/index.html )被检测为我的控制器,而不是资源处理程序。 protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { for (HandlerMapping […]

如何在Spring Boot测试中设置’headless’属性?

我正在测试使用Spring Boot和JavaFX(基于一些优秀的YouTubevideo来解释这一点)。 为了使它与TestFX一起工作,我需要创建如下的上下文: @Override public void init() throws Exception { SpringApplicationBuilder builder = new SpringApplicationBuilder(MyJavaFXApplication.class); builder.headless(false); // Needed for TestFX context = builder.run(getParameters().getRaw().stream().toArray(String[]::new)); FXMLLoader loader = new FXMLLoader(getClass().getResource(“main.fxml”)); loader.setControllerFactory(context::getBean); rootNode = loader.load(); } 我现在想测试这个JavaFX应用程序,为此我使用: @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) public class MyJavaFXApplicationUITest extends TestFXBase { @MockBean private MachineService machineService; @Test public void test() throws InterruptedException { […]

如何在Spring Boot中获取DispatcherServeletInitializerfunction

我们希望将项目迁移到Spring Boot。 但是,目前还不清楚如何在Spring Boot中复制AbstractAnnotationConfigDispatcherServletInitializer的function? public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class[] getRootConfigClasses() { return new Class[]{AppConfig.class}; } @Override protected Class[] getServletConfigClasses() { return new Class[]{WebappConfig.class}; } @Override protected void customizeRegistration(ServletRegistration.Dynamic registration) { registration.setAsyncSupported(true); } @Override protected String[] getServletMappings() { return new String[]{“/”}; } @Override protected Filter[] getServletFilters() { DelegatingFilterProxy shiroFilter = new DelegatingFilterProxy(“shiroFilter”); […]

为什么不能从ui应用程序读取spring boot angularjs网关应用程序?

我正在使用以下链接中的教程了解spring的可伸缩性function。 具体来说, 本教程的第6部分使用网关应用程序来管理对其他服务器上运行的应用程序的访问。 我已经完全按照以下步骤操作,但是当我启动所有三个应用程序然后在我的网络浏览器中输入localhost:8080/ui ,我得到的是“问候”这个词,没有id或hello world,也没有css。 当我在Firefox中打开请求的开发人员工具时,我看到对css和js资源的GET请求获得404错误,指向http://localhost:8080/js/hello.js 而不是指向http://localhost:8080/ui/js/hello.js ,正如本教程的测试部分所示。 如何更改此设置以便在浏览器中显示问候语? 以下是我一步一步完成的工作,按照教程的第六步,首先从第一部分重新创建ui起点,从第三部分重新创建resource起点: 创建UI示例启动器应用程序 # mkdir ui # chmod -R 777 ui # cd ui # curl https://start.spring.io/starter.tgz -d style=web -d style=security -d name=ui | tar -xzvf – Eclipse>文件>导入>现有Maven项目>导航到ui文件夹>完成 在src/main/resources/static创建index.html并添加以下内容: Hello AngularJS [ng\:cloak], [ng-cloak], .ng-cloak { display: none !important; } Greeting The ID is {{greeting.id}} The content […]

使用Cassandra 3.x驱动程序进行Spring Boot

我使用Spring boot 1.3.8.RELEASE 。 要使用cassandra 3.x驱动程序,我尝试了类似下面的内容; org.springframework.boot spring-boot-starter-data-cassandra org.springframework.data spring-data-cassandra org.springframework.data spring-data-cassandra 1.4.0.RELEASE com.datastax.cassandra cassandra-driver-core com.datastax.cassandra cassandra-driver-dse com.datastax.cassandra cassandra-driver-core 3.1.0 但我得到错误; Caused by: java.lang.NoSuchMethodError: com.datastax.driver.core.DataType.asJavaClass()Ljava/lang/Class; at org.springframework.data.cassandra.mapping.CassandraSimpleTypeHolder.(CassandraSimpleTypeHolder.java:62) ~[spring-data-cassandra-1.4.0.RELEASE.jar:?] 我在https://github.com/spring-projects/spring-boot/issues/5835尝试了这个原因,有一个post; 在Spring Data Cassandra 1.5(Ingalls)中采用Cassandra 3更改并不会对Spring Boot进行重大更改。 使用Boot 1.3.3和1.4.0-SNAPSHOT测试升级。 它不应该像上面那样吗? 我哪里错了? 注意:我正在尝试这个例子: https : //github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-cassandra

Swagger Gateway MicroService聚合

我正在使用SpringBoot开发一个微服务应用程序。 Gateway Microervice面向公众,它将请求重定向到特定的微服务(在不同的主机上运行)。 现在,我有多个微服务,每个微服务都使用Swagger公开了他们的API。 我们希望为公共客户聚合所有这些API Swagger文档。 我们已经合并的临时解决方案是,只为Gateway Service中的每个微服务复制了Swagger Annotated类。 这样做的正确方法是什么?

Spring boot – 控制器捕获所有URL

我正在构建一个Spring启动Web应用程序,并使用注释进行控制器/ URL映射。 我有几个带@RequestMapping注释的控制器,其中url值设置(空字符串和特定URL),这些控制器工作正常,例如 @Controller @RequestMapping(“/accounts”) class SignInController { @Autowired PartyService partyService @RequestMapping(value=””, method = RequestMethod.GET ) public String signinPage( Model model) { 导航到/ accounts会正确呈现登录页面。 但是,如果我添加一个没有RequestMapping值的控制器,例如 @Controller class CustomController { @RequestMapping public String transform( Model model ) { 然后,我输入的任何与任何其他特定控制器都不匹配的URL将由此控制器处理(因此我希望404所有页面都只显示此页面)。 这是预期的行为吗? 我没想到这一点,并且由于RequestMapping值默认为空并且是一个antMatcher,我不会认为它会处理所有其他URL。 我有这个控制器没有定义RequestMapping的原因是因为我想要一个SimpleUrlMappingHandler定义一些明确的URL到那个控制器,如果我没有包含@Controller和@RequestMapping注释到那个控制器那么我得到一个关于无法找到处理程序方法的错误(可能问题是我误解了该实现细节)。 我的自定义控制器应该处理所有URL吗? 如果是这样,有什么我可以做的,所以它不会被只调用我定义的显式SimpleUrlMappingHandler吗?

Spring Boot,Spring Cloud AWS和AWS SQS无法从队列中读取

我正在尝试使用Spring Boot和Spring Cloud AWS SQS构建一个最小的gradle java项目,但我无法从队列中读取它。 这些是我的项目文件: 的build.gradle: apply plugin: “java” apply plugin: “eclipse” apply plugin: “spring-boot” apply plugin: “io.spring.dependency-management” sourceCompatibility = 1.8 targetCompatibility = 1.8 buildscript { repositories { mavenCentral() } dependencies { classpath(“org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE”) classpath(“io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE”) } } dependencyManagement { imports { mavenBom(“org.springframework.cloud:spring-cloud-aws:1.1.0.RELEASE”) } } repositories { mavenCentral() } dependencies { compile(“org.springframework.boot:spring-boot-starter-actuator:1.3.5.RELEASE”) compile(“org.springframework.cloud:spring-cloud-starter-aws:1.1.0.RELEASE”) // if […]

Jlastic的弹性搜索,Spring

有人能举例说明在jHipster或Spring-boot中使用Elasticsearch吗? 我已经使用jHipster生成了实体。 有占位符的输入:查询! /** * SEARCH /_search/samples/:query -> search for the sample corresponding * to the query. */ @RequestMapping(value = “/_search/samples/{query}”, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @Timed public List search(@PathVariable String query) { return StreamSupport .stream(sampleSearchRepository.search(queryString(query)).spliterator(), false) .collect(Collectors.toList()); } 如何使用elasticsearch? 这里有一些我在生成实体中找到的脚本! 我已经尝试过放置Object , q = field:value , 弹性格式的数组,并且总是得到空数组 。 抱歉英语不好!