草庐IT

Spring之@Autowired依赖注入探究

全部标签

java - Spring Boot Actuator - 如何向/关闭端点添加自定义逻辑

在我的项目中,我开始使用SpringBootActuator。我使用/shutdown端点优雅地停止嵌入式Tomcat(这很好用),但我还需要在关机期间执行一些自定义逻辑。有什么办法,怎么做? 最佳答案 我可以想到两种方法来关闭应用程序之前执行一些逻辑:注册一个Filter,毕竟是一个web应用。拦截invoke使用@Before建议的方法Servlet过滤器由于/shutdown是一个Servlet端点,您可以注册一个Filter以在/shutdown端点被调用之前运行:publicclassShutdownFilterexten

java - 在 Spring Boot 中使用两个数据源

我在我的项目中使用SpringBoot1.3.3和一个数据库,现在我想使用两个具有相同架构的数据库>但不同的连接。我想使用相同的存储库、实体,并根据情况找到告诉spring我想使用哪个数据源的方法。 最佳答案 如果有人遇到这个问题,我已经找到了解决方案:首先,您的application.properties应该如下所示:datasource:primary:url:jdbc:mysql://localhost:3306/primary_dbusername:your_usernamepassword:your_passworddri

java - 如何让 Maven 构建在重复依赖项上失败?

如果我在同一个pom中有两个相同的依赖项,我希望构建失败。目前我可以通过Maven依赖插件的“analyze-duplicate”检测到它的发生。但是,没有像其他一些选项那样的failOnWarning选项(另外,它在信息级别打印,而不是警告)。除了扩展它还有其他选择吗? 最佳答案 通常,当您希望构建由于某种原因失败时,查看MavenEnforcerPlugin的好插件。.这个插件可以配置一组规则,当这些规则被验证时,构建将失败。在这种情况下,它需要一个检查重复依赖项的规则,并且有一个内置规则专门用于此:.因此,您可以maven-e

java - 内存数据库H2中的Spring Boot不会在初始化时从文件加载数据

我在应用程序初始化时将数据加载到内存数据库时遇到问题。我创建了包含表结构和初始数据的schema.sql和data.sql文件。架构.sql:CREATETABLEusers(idINTPRIMARYKEY,usernameVARCHAR(64)NOTNULL,passwordVARCHAR(64));和data.sql:INSERTINTOusers(id,username,password)VALUES(1,'usr1','bigSecret'),(2,'usr2','topSecret');我正在使用JpaRepository处理数据层:publicinterfaceUserRe

java - 修改Spring boot Embedded Tomcat解压路径

我已经意识到,当我运行springbooth应用程序时,在/tmp文件下提取了嵌入的tomcat文件。定期清理会删除此文件夹,因此应用程序会出错。有没有办法修改路径,把/tmp改成/customfolder. 最佳答案 您正在寻找属性server.tomcat.basedir,对吗?server.tomcat.basedir=#Tomcatbasedirectory.Ifnotspecified#atemporarydirectorywillbeused. 关于java-修改Spring

java - 在 spring boot 应用程序中禁用 HTTP OPTIONS 方法

我在springboot应用程序上开发了restAPI。API仅接受GET和POST,但在使用OPTIONS方法请求时,API响应200状态(而不是405)。我用谷歌搜索了这个问题,但没有一个解决方案是基于springboot的。响应:Allow:OPTIONS,TRACE,GET,HEAD,POSTPublic:OPTIONS,TRACE,GET,HEAD,POST需要禁用OPTIONS方法。 最佳答案 Previousanswer仅适用于tomcat,因此也添加我的。例如,您可以使用标准的servlet过滤器来禁用方法跨容器:i

java - 如何打印 Spring Boot 加载的所有配置?

我想在屏幕上打印从配置文件加载的所有属性。我该怎么做?我找不到太多相关信息。那是因为我可能会使用参数--spring.config.location加载配置文件,我想看看我是否正确加载了文件。我正在寻找一个控制台解决方案,我可以在进程实际开始执行任务之前打印一些内容。 最佳答案 如果你使用SpringBootActuator,你会得到一个/envendpoint这会向您显示该信息。要启用此功能,请将以下依赖项添加到您的项目中:org.springframework.bootspring-boot-starter-actuator输出

java - Spring 启动 : restarter not initialized

当springboot版本为1.5.3.RELEASE时,启动应用程序出现如下错误堆栈跟踪:java.lang.IllegalStateException:Restarterhasnotbeeninitializedatorg.springframework.util.Assert.state(Assert.java:392)~[spring-core-4.3.4.RELEASE.jar:4.3.4.RELEASE]atorg.springframework.boot.devtools.restart.Restarter.getInstance(Restarter.java:563)~

java - 什么时候在 Java/Gradle 中使用运行时而不是编译时依赖?

根据我的理解,Gradle会将所有compile依赖作为runtime依赖。当你应该只使用运行时时,什么是实例?当调用gradlebuild时,所有子依赖项都从compile中获取并拉入编译。例如,当我对调用时打印的内容进行比较时>gradle-qdependencies为编译和运行时打印的列表是相同的。示例输出可能显示以下两者:+---org.springframework.boot:spring-boot-starter-web:->1.5.4.RELEASE|+---org.springframework.boot:spring-boot-starter:1.5.4.RELEAS

java - 模块不依赖于 Intellij IDEA 2017.2.5 Java 9

我刚刚在命令行中测试了我对java9模块的理解。然后我搬到了IntellijIDEA2017.2.5来测试它。我遇到了错误moduleisnotindependencies不知道为什么intellij显示错误。我只是在module-info.java中将需要的语句写为exports和requires。然后我用Intellij智能通过IDEA自行解决错误。只需ALT+ENTER,然后单击Adddependencyonmodule'module-name-here'。但我不知道Intellij在幕后做了什么。有什么想法吗? 最佳答案 但