我需要知道在Java引导中是否有一种在启动时不尝试连接的方法。我要做的是建立一个集成的SQL服务器连接。我试图生成一个具有集成连接的.jar,而不是使用SQL凭据。作为一个开发人员,我没有访问数据库的权限,但是运行.jar的服务帐户是这样的。问题是,如果我试图建立一个具有集成身份验证的连接字符串,它将尝试使用我的凭据登录,而且它永远也无法这样做,因此在我的应用程序使用sql凭据时它无法生成.jar,但我需要迁移到集成凭据。
我的pom.xml看起来是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>X</groupId>
<artifactId>X</artifactId>
<version>1.0.0</version>
<name>X</name>
<description>X</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
<version>0.0.20131108.vaadin1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我的application.properties:
spring.datasource.url=jdbc:sqlserver://X.X.X.X:1433;database=X
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=X
spring.datasource.password=X
server.port=8080
我还尝试在application.properties中添加这一行,但没有成功:
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
发布于 2022-07-16 10:37:17
在主类上使用此指定可以解决所有问题。
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
而不是
@SpringBootApplication()
发布于 2022-04-21 06:28:44
在启动jar时,服务帐户是否使用特殊的spring配置文件?然后您可以在您的application.properties中这样做:
#---
spring.config.activate.on-profile=serviceProfile
spring.datasource.url=jdbc:sqlserver://${DB_HOST};database=${DB_NAME}
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
server.port=8080
服务将像这样启动jar:
java -jar -Dspring.profiles.active=serviceProfile -DDB_HOST=X.X.X.X:1433 -DDB_NAME=X -DDB_USER=X -DDB_PASSWORD=X application.jar
https://stackoverflow.com/questions/71955975
复制相似问题