Questions tagged «spring-boot»

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

14
没有Web服务器的Spring Boot
我有一个简单的Spring Boot应用程序,该应用程序从JMS队列获取消息并将一些数据保存到日志文件,但不需要Web服务器。没有Web服务器,有什么方法可以启动Spring Boot吗?
101 java  spring-boot 

10
如何自定义Spring Boot隐式使用的Jackson JSON映射器?
我正在使用Spring Boot(1.2.1),其方式与他们的Build RESTful Web Service教程中的方式类似: @RestController public class EventController { @RequestMapping("/events/all") EventList events() { return proxyService.getAllEvents(); } } 因此,在上面,Spring MVC隐式使用Jackson将我的EventList对象序列化为JSON。 但我想对JSON格式进行一些简单的自定义,例如: setSerializationInclusion(JsonInclude.Include.NON_NULL) 问题是,定制隐式JSON映射器的最简单方法是什么? 我在此博客文章中尝试了该方法,创建了一个CustomObjectMapper,依此类推,但是步骤3“在Spring上下文中注册类”失败了: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jacksonFix': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.acme.project.JacksonFix.setAnnotationMethodHandlerAdapter(org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter); nested exception is …


8
尚未实现org.postgresql.jdbc.PgConnection.createClob()方法
我该如何解决此错误: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161] at org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl.useContextualLobCreation(LobCreatorBuilderImpl.java:113) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl.makeLobCreatorBuilder(LobCreatorBuilderImpl.java:54) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.<init>(JdbcEnvironmentImpl.java:271) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:114) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at …
99 java  spring-boot 

7
Spring Boot-从application.yml注入映射
我有一个带有以下内容的Spring Boot应用程序application.yml-基本上是从这里获取的: info: build: artifact: ${project.artifactId} name: ${project.name} description: ${project.description} version: ${project.version} 我可以注入特定的值,例如 @Value("${info.build.artifact}") String value 但是,我想注入整个地图,例如: @Value("${info}") Map<String, Object> info 那(或类似的东西)可能吗?显然,我可以直接加载yaml,但是想知道Spring是否已经支持了某些东西。

7
如何从bootRun传递JVM选项
我正在开发与远程主机通信的简单Spring Web应用程序,我想在公司代理之后在本地对其进行测试。我使用“ Spring Boot” gradle插件,问题是如何为JVM指定代理设置? 我尝试了几种方法来做到这一点: gradle -Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080 bootRun export JAVA_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080" export GRADLE_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080" 但似乎它们都不起作用-“ NoRouteToHostException”引发“网络”代码。另外,我添加了一些额外的代码来调试JVM启动参数: RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); List<String> arguments = runtimeMxBean.getInputArguments(); for (String arg: arguments) System.out.println(arg); 并且仅打印一个参数:“-Dfile.encoding = UTF-8”。 如果我在代码中设置系统属性: System.setProperty("http.proxyHost", "X.X.X.X"); System.setProperty("http.proxyPort", "8080"); 一切正常!

3
使用MockMvc和SpringBootTest与使用WebMvcTest之间的区别
我是Spring Boot的新手,正在尝试了解SpringBoot中的测试工作原理。我对以下两个代码段之间的区别感到困惑: 程式码片段1: @RunWith(SpringRunner.class) @WebMvcTest(HelloController.class) public class HelloControllerApplicationTest { @Autowired private MockMvc mvc; @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().string(equalTo("Greetings from Spring Boot!"))); } } 该测试使用了@WebMvcTest我认为用于功能切片测试的注释,并且仅测试Web应用程序的MVC层。 代码段2: @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc public class HelloControllerTest { @Autowired private MockMvc mvc; @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) …

8
Spring Boot application.properties值未填充
我有一个非常简单的Spring Boot应用程序,正在尝试使用某些外部化配置。我尝试遵循spring boot文档中的信息,但是遇到了障碍。 当我在外部运行以下应用程序时,application.properties文件中的外部配置不会填充到Bean中的变量中。我确定我做的很蠢,谢谢您的建议。 MyBean.java(位于/ src / main / java / foo / bar /中) package foo.bar; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; @Component public class MyBean { @Value("${some.prop}") private String prop; public MyBean() { System.out.println("================== " + prop + "================== "); } } Application.java(位于/ src / main …

8
Spring Boot @ResponseBody没有序列化实体ID
有一个奇怪的问题,无法弄清楚如何处理。有简单的POJO: @Entity @Table(name = "persons") public class Person { @Id @GeneratedValue private Long id; @Column(name = "first_name") private String firstName; @Column(name = "middle_name") private String middleName; @Column(name = "last_name") private String lastName; @Column(name = "comment") private String comment; @Column(name = "created") private Date created; @Column(name = "updated") private Date updated; …

20
java.lang.IllegalArgumentException:未找到类型返回值的转换器
有了这个代码 @RequestMapping(value = "/bar/foo", method = RequestMethod.GET) public ResponseEntity<foo> foo() { Foo model; ... return ResponseEntity.ok(model); } } 我得到以下异常 java.lang.IllegalArgumentException: No converter found for return value of type 我的猜测是,由于缺少Jackson,该对象无法转换为JSON。我不明白为什么,因为我以为杰克逊内置弹簧靴。 然后我试图将Jackson添加到pom.xml中,但是我仍然遇到相同的错误 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.3</version> </dependency> 我是否必须更改任何Spring Boot属性才能使其正常工作? 谢谢

17
如何在我的application.properties文件的Spring Boot应用程序中配置HikariCP?
我试图在我的Spring Boot(1.2.0.M1)应用程序中设置HikariCP,以便可以测试使用它代替Tomcat DBCP。我想像在使用Tomcat一样在我的application.properties文件中配置连接池,但是我不知道该怎么做。我发现的所有示例都显示JavaConfig样式,或使用单独的HikariCP属性文件。有人可以帮我找出属性名称以在application.properties中进行配置吗?我也想从使用driverClassName方法切换到DataSourceClassName方法,因为它看起来更干净,建议使用。我的application.properties文件中也可能吗? 这是我对Tomcat DBCP的使用(只是一些基本配置,尚未完全清除) spring.datasource.validation-query=SELECT 1 spring.datasource.max-active=10 spring.datasource.max-idle=8 spring.datasource.min-idle=8 spring.datasource.initial-size=5 spring.datasource.test-on-borrow=true spring.datasource.test-on-return=true 而且我目前正在使用driverClassName和jdbc url来建立连接: spring.datasource.url=jdbc:mysql://localhost:3306/myDb spring.datasource.driverClassName=com.mysql.jdbc.Driver

11
用于集成测试的Spring-boot默认配置文件
Spring-boot利用了Spring配置文件(http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html),这些配置文件例如允许针对不同的环境进行单独的配置。我使用此功能的一种方法是配置要由集成测试使用的测试数据库。但是我想知道是否有必要创建自己的配置文件“测试”并在每个测试文件中显式激活此配置文件吗?现在,我通过以下方式进行操作: 在src / main / resources内创建application-test.properties 将测试特定的配置写在那里(现在只是数据库名称) 在每个测试文件中包括: @ActiveProfiles("test") 有没有更聪明/更简洁的方法?例如默认的测试配置文件? 编辑1:此问题与Spring-Boot 1.4.1有关

19
Spring Boot Security禁用安全性
当我使用security.basic.enabled = false禁用具有以下依赖关系的Spring Boot项目上的安全性时: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 我看到以下异常: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.actuate.autoconfigure.ManagementSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire …

6
Spring Boot Test忽略logging.level
我的maven模块之一在运行测试时会忽略我的日志记录级别。 在src/test/resources我有application.properties: app.name=bbsng-import-backend app.description=Import Backend Module for Application spring.profiles.active=test # LOGGING logging.level.root=error logging.level.org.springframework.core =fatal logging.level.org.springframework.beans=fatal logging.level.org.springframework.context=fatal logging.level.org.springframework.transaction=error logging.level.org.springframework.test=error logging.level.org.springframework.web=error logging.level.org.hibernate=ERROR 我也试过了application-test.properties。 我的应用程序记录很多,尤其是在加载上下文时。我想logback.xml,logback-test.xml和logback-spring.xml,但没有什么帮助。 我的pom: <parent> <groupId>at.company.bbsng</groupId> <artifactId>bbsng-import</artifactId> <version>0.1.0-SNAPSHOT</version> </parent> <artifactId>bbsng-import-backend</artifactId> <name>bbsng-import-backend</name> <properties> <start-class>at.company.bbsng.dataimport.ApplicationImportBackend</start-class> </properties> <dependencies> <!-- APPLICATION ... --> <dependency> <groupId>at.company.bbsng</groupId> <artifactId>bbsng-app-domain</artifactId> <scope>test</scope> </dependency> <!-- SPRING ... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> …

7
从@ComponentScan中排除@Component
我有一个要从@ComponentScan特定对象中排除的组件@Configuration: @Component("foo") class Foo { ... } 否则,它似乎与我项目中的其他班级发生冲突。我不完全了解碰撞,但是如果我注释掉@Component注释,事情就会像我希望的那样工作。但是依赖该库的其他项目希望此类由Spring管理,因此我只想在我的项目中跳过它。 我尝试使用@ComponentScan.Filter: @Configuration @EnableSpringConfigured @ComponentScan(basePackages = {"com.example"}, excludeFilters={ @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)}) public class MySpringConfiguration {} 但它似乎不起作用。如果尝试使用FilterType.ASSIGNABLE_TYPE,则会收到一个奇怪的错误,提示您无法加载一些看似随机的类: 原因:java.io.FileNotFoundException:类路径资源[junit / framework / TestCase.class]无法打开,因为它不存在 我也尝试type=FilterType.CUSTOM如下使用: class ExcludeFooFilter implements TypeFilter { @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { return metadataReader.getClass() == Foo.class; } } @Configuration …

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.