Tag: 春季启动

Spring Initializr创建无效的项目

我正在尝试通过以下设置通过Spring Initializr创建一个Spring Boot应用程序 Kotlin Gradle依赖关系 – Web 它下载的项目在导入IntelliJ时有一些问题 当试图建立它有错误错误:无效的密钥库格式Gradle项目刷新失败 此外,当我尝试添加一个Kotlin类新类不可用,但我相信这是因为该项目还没有适当刷新

IntelliJ社区找不到Web应用程序工件来生成WAR

我正在使用IntelliJ-IDEA Community Edition从Maven-Project生成一个war文件。 当谈到生成这个战争文件我找不到工件之间的战争选项。 我试图: 1)转到文件>项目结构>工件>类型 ,但未提及WAR; 2)右键单击项目模块>添加框架支持 ,但没有提到Web应用程序 (我只有Groovy,Kotlin(Java),Kotlin(JavaScript)。 这是我的pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>mawashi.alex.firstapp</groupId> <artifactId>firstapp</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>firstapp</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.7.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!–automatic configuration for web applications–> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>1.4.1.RELEASE</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> […]

Spring&kotlin:构造函数和lateinit注入有什么区别?

我的应用程序使用spring kotlin时遇到了问题。 一开始我有一个控制器和一个这样的服务: 这是服务: @Service class StuffService { @Inject lateinit var environment : Environment fun doStuff() = [HERE FUNCTION CODE USING environment VARIABLE] } 这里是控制器: @RestController class StuffController { @Inject lateinit var stuffService : StuffService @RequestMapping("/doStuff") fun doStuff() = stuffService.doStuff() } 不幸的是,当我启动springboot时,这给了我这个错误: kotlin.UninitializedPropertyAccessException: lateinit property environment has not been initialized 所以我试图通过构造函数注入: @Service class StuffService(val environment […]

KOTLIN orphanRemoval无效

是否有任何人删除子记录的类似问题,但没有使用orphanRemoval注释? 以下是我在Model Class构造函数中的代码示例: @OneToMany(orphanRemoval = true, cascade = arrayOf(CascadeType.ALL)) @JoinColumn(name = "categoryId", nullable = false) var books: List<BOOK> = emptyList() 使用cascade = arrayOf(CascadeType.ALL)的CRUD是完美的工作,但是当在“ONE-TO-MANY”注释中添加orphanRemoval = true时,它不能再工作,抛出如下异常: org.hibernate.HibernateException:具有cascade =“all-delete-orphan”的集合不再由拥有的实体实例引用: 添加orphanRemoval从数据库中永久删除子记录的目的。

使用Kotlin的Spring Boot 2.0.0.M2应用程序的UnsatisfiedDependencyException

我试图用Kotlin重写JHipster应用程序的DataConfiguration.java实现。 我遇到的问题是: @Bean public SpringLiquibase liquibase(@Qualifier("taskExecutor") TaskExecutor taskExecutor, DataSource dataSource, LiquibaseProperties liquibaseProperties) { // Use liquibase.integration.spring.SpringLiquibase if you don't want Liquibase to start asynchronously SpringLiquibase liquibase = new AsyncSpringLiquibase(taskExecutor, env); liquibase.setDataSource(dataSource); liquibase.setChangeLog("classpath:config/liquibase/master.xml"); liquibase.setContexts(liquibaseProperties.getContexts()); liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema()); liquibase.setDropFirst(liquibaseProperties.isDropFirst()); if (env.acceptsProfiles(JHipsterConstants.SPRING_PROFILE_NO_LIQUIBASE)) { liquibase.setShouldRun(false); } else { liquibase.setShouldRun(liquibaseProperties.isEnabled()); log.debug("Configuring Liquibase"); } return liquibase; } 我改写为: @Bean fun liquibase(@Qualifier("taskExecutor") taskExecutor: TaskExecutor, […]

尝试在Kotlin和Spring引导下使用JPA时出现BeanDefinitionParsingException

当我尝试使用springboot + JPA + kotlin + maven时,我得到这个异常 org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Bean method 'init' must not be private or final; change the method's modifiers to continue Offending resource: com.wirecard.kotlin.jpa.Application at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) at org.springframework.context.annotation.BeanMethod.validate(BeanMethod.java:50) at org.springframework.context.annotation.ConfigurationClass.validate(ConfigurationClass.java:219) at org.springframework.context.annotation.ConfigurationClassParser.validate(ConfigurationClassParser.java:528) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:307) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:239) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686) at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) at […]

Spring Data JPA如何使用Kotlin空值而不是可选值

我正在用Spring Data JPA和Kotlin编写一个Spring Boot应用程序,我注意到在CrudRepository有以下方法: Optional<T> findById(ID id); 不过,我正在使用Kotlin,它的处理空值的方式比Optional更加流畅。 有谁知道我会如何转换这种方法工作? fun findById(id: ID): T? 当我扩展Repository本身,并创建一个回购签名时,我得到的错误: java.lang.ClassCastException: java.util.Optional cannot be cast to com.books.Book

如何使用Spring Boot和Spring WebFlux的“功能bean定义Kotlin DSL”?

在https://github.com/spring-projects/spring-framework/blob/master/spring-context/src/main/kotlin/org/springframework/context/support/BeanDefinitionDsl.kt ,注释显示了如何定义Spring Beans通过新的“功能bean定义Kotlin DSL”。 我也发现https://github.com/sdeleuze/spring-kotlin-functional 。 但是,这个例子使用的只是普通的 Spring而不是Spring Boot 。 任何提示如何与Spring Boot一起使用DSL是值得赞赏的。

Kotlin编译器抱怨在属性定义中使用SPeL表达式。 为什么?

当我尝试使用SPeL表达式来注入一个值时,它可以在Java中使用,但不能在Kotlin中使用。 编译器说 错误:(13,25)Kotlin:注释参数必须是编译时常量 码: @SpringBootApplication open class DeDup(@Value("#{new java.io.File('${roots}')}") val roots: Set<File>, @Value("algo") val hashAlgo: String, @Value("types")val fileTypes: List<String>) { } fun main(args: Array<String>) { SpringApplication.run(DeDup::class.java, *args) } 嗯…新闻Flash Kotlin编译器:这是一个常数! 编译器清楚地知道这是一个SPeL表达式,并不喜欢它。 我的问题: Kotlin为什么不喜欢SPeL? 这是一个施工注射(或是否),不违反不变性。 这是一个编译器错误? 这个消息是无可辩驳的错误。

我不能在Springboot-Kotlin中排除MongoAutoConfiguration(MongoSocketOpenException)

当试图排除MongoAutoConfiguration时,我得到一个MongoSocketOpenException。 我试图连接到一个远程的MongoDB。 考虑到我在Kotlin工作,@EnableAutoConfiguration语法是否正确? 例外: com.mongodb.MongoSocketOpenException: Exception opening socket at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongo-java-driver-3.4.2.jar:na] at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115) ~[mongo-java-driver-3.4.2. jar:na] at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113) ~[mongo-java- driver-3.4.2.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_20] Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_20] at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_20] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) ~[na:1.8.0_20] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_20] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_20] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_20] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_20] at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_20] at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57) […]