Tag: 春季

java.lang.NoSuchMethodException:com … Employee。<init>()

我有这个类,我有一个构造函数: @Entity data class Employee( @field: Id @field:GeneratedValue var id : Long = 0, var username : String = "", var password : String ="", var name : String ="", var lastName: String ="", var phone : String="", var email : String ="", var sex : String ="", var active : Boolean = false, @field: […]

spring.config.location不能在spring引导2.0.0 M6上工作

我将其中一个微服务迁移到Spring Boot 2.0.0.M6,并且在命令行上使用–spring.config.location=选项时出现错误。 错误如下: Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'property' in value "${property}" at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:237) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:211) ~[spring-core-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175) ~[spring-context-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:834) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1081) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1060) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:578) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:367) ~[spring-beans-5.0.1.RELEASE.jar:5.0.1.RELEASE] … 50 common frames omitted 如果我不使用自定义属性文件,一切都按预期工作或使用RELEASE版本。 我使用以下命令启动应用程序: […]

春季启动休息api:如何支持json和表单urlencoded请求?

是否有可能同时支持json和multipart表单数据请求? 例如,我想实现一个支持下面两个请求的API: curl -X "POST" "http://localhost:8080/charge" \ -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \ –data-urlencode "user_id=duanhong" \ –data-urlencode "gift_id=1" curl -X "POST" "http://localhost:8080/charge" \ -H "Content-Type: application/json; charset=utf-8" \ -d $'{ "user_id": "duanhong", "gift_id": "1" }' 我试过了: @RequestMapping(value = "/charge", method = arrayOf(RequestMethod.POST), consumes = arrayOf(MediaType.APPLICATION_JSON_UTF8_VALUE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)) fun charge(@RequestBody body: Charge): ChargeResult { return chargeService.charge(body.user_id, body.gift_id) } […]

如何用Spring WebFlux返回404

我有一个这样的控制器(在Kotlin中): @RestController @RequestMapping("/") class CustomerController (private val service: CustomerService) { @GetMapping("/{id}") fun findById(@PathVariable id: String, @RequestHeader(value = IF_NONE_MATCH) versionHeader: String?): Mono<HttpEntity<KundeResource>> = return service.findById(id) .switchIfEmpty(Mono.error(NotFoundException())) .map { // ETag stuff … ok().eTag("…").body(…) } } 我想知道是否有一个更好的方法比抛出一个异常是用@ResponseStatus(code = NOT_FOUND)注解@ResponseStatus(code = NOT_FOUND)

遇到多个对数据库序列的引用

构建JHipster应用程序时出现此错误: org.springframework.beans.factory.BeanCreationException:在类路径资源[org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaAutoConfiguration.class]中定义名称为'entityManagerFactory'的bean时出错:init方法的调用失败; 嵌套的异常是org.hibernate.HibernateException:遇到数据库序列[hibernate_sequence]的多个引用尝试toset冲突值为'增量大小'。 发现[1]和[50] 我在这里看到50,但是我不知道1是从哪里来的。 自从最后一次工作以来,我在这些 Kotlin文件中添加了一些新的实体。 我正在将Thinkter管道演示作为一项功能添加到我的应用程序中。 自行演示构建和运行没有任何问题。 为了得到我现在所在的位置,我将演示中的代码复制到了我的应用程序中,并调整了一些与用户实体相关的内容。 由于JHipster不允许您向用户添加字段,因此我创建了一个与其1:1关系的Author实体。 这本身可能与这个错误没有任何关系。 我认为这个新代码中的某些东西必须尝试创建一个序列,并且默认的增量大小是1。

春季启动不等待请求

昨天我得到了非常奇怪的春季开机行为 例如:我试图启动服务器使用./gradlew bootRun : … :findMainClass :bootRun :: Spring Boot :: (v1.3.1.RELEASE) 2016-01-19 16:37:15.315 INFO 6118 — [ main] ceserver.Application$Companion : Starting Application.Companion on fake with PID 6118 (/home/user/code/xproject/server/build/classes/main started by user in /home/user/code/xproject/server) 2016-01-19 16:37:15.320 INFO 6118 — [ main] ceserver.Application$Companion : No active profile set, falling back to default profiles: default 2016-01-19 16:37:15.400 […]

Spring Boot Controller语言环境不随参数更改

我在使用Kotlin的Spring Boot来处理区域设置时遇到了一些麻烦。 我在我的application.properties文件中创建了这些设置: spring.messages.basename=messages/messages spring.messages.cache-seconds=-1 spring.messages.encoding=UTF-8 然后在我的控制器中创建一个MessageSource的自动装配实例: @Autowired lateinit var messageSource: MessageSource 当把url中的语言环境作为参数时,当我调用LocaleContextHolder.getLocale()时,这个参数似乎没有被拾取,所以它总是en_US。 虽然,我可以使用@RequestParam(value="locale") locale: Locale作为我的控制器函数的一个参数手动提取,并在控制器函数中使用它,但不能在其他函数中使用它。 我认为,春季启动LocaleContextHolder应该保持当前的区域设置基于请求的URL自动为整个会话。 我读了一篇较老的文章,提到在主类中使用LocaleChangeInterceptor bean以及MessageSource和LocaleResolver的bean,但另一篇文章则说Spring Boot并不需要这样做。 无论如何,我尝试了没有区别。 这些是我使用的功能: @Bean open fun localeResolver(): LocaleResolver { val slr = SessionLocaleResolver() slr.setDefaultLocale(Locale.US) return slr } @Bean open fun localeChangeInterceptor(): LocaleChangeInterceptor { val localeChangeInterceptor = LocaleChangeInterceptor() localeChangeInterceptor.paramName = "locale" return localeChangeInterceptor } @Bean open fun […]

将数据存储在BEAN(Spring Boot REST)

我正在用Spring Boot创建一个REST API。 大部分数据来自数据库,但有些数据是从第三方API获取的。 问题是其中一些有访问限制,如每分钟最多10个请求或什么的。 现在我正在寻找一种方法来缓存我的Spring应用程序中的数据,并且每隔几秒只更新一次。 将其存储在数据库中并每10秒更新一次,因为获取的数据大约有1000行,所以这个数据太多了。 所以我想我只是把它存储在我的服务bean中。 这是我迄今的做法。 (在Kotlin编码) @Service class MyService(){ var myData: CustomDataObject fun getData() = myData fun updateData(){ // call API and store in myData Object } } 它的作品,但似乎有点哈克我。 不是一个干净的解决方案,是吗? 如果有人有更好的方法,我会非常感激。

在方法上添加@Transactional后,这个类(服务)不能Autowired bean(仓库)?

在MyBootApplication上添加@EnableTransactionManagement @Bean public Object testBean(PlatformTransactionManager platformTransactionManager){ System.out.println(">>>>>>>>>>TransactionManager is " + platformTransactionManager.getClass().getName()); return new Object(); } @Bean public Object testBean(PlatformTransactionManager platformTransactionManager){ System.out.println(">>>>>>>>>>TransactionManager is " + platformTransactionManager.getClass().getName()); return new Object(); }它打印的TransactionManager是org.springframework.orm.jpa.JpaTransactionManager @Service open class UserService : BaseService() { @Autowired lateinit var repository: UserRepository @Transactional fun updateValid(id: Long, valid: Boolean) { ErrorConstant.ParamErrorCode.IdIsNull.caseThrow { id == 0.toLong() } repository.updateValid(id,valid) […]

如何在Spring Boot应用程序中为Netty配置TLS?

我的微服务正在使用最新版本的Spring Boot,Spring WebFlux(Undertow),Spring Data MongoDB,Spring Cloud Netflix和Kotlin … 现在我已经设置了一个演示项目来使用新的功能界面,而不是Spring WebFlux中的注释。 与HTTP使用Netty工作正常。 但是,我找不到任何有关如何使用TLS配置Netty的信息。 HTTPS。 任何提示表示赞赏!