我目前正在阅读 Vlad Mihalcea 的书High-Performance Java Persistence。
在字节码增强部分,据说enableDirtyTracking可以通过替换反射来优化大量数据的性能。但我只是想知道是否有任何缺点?
不幸的是,我找不到任何或只有非常旧的信息。
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>${hibernate.version}</version>
<executions>
<execution>
<configuration>
<failOnError>true</failOnError>
<enableDirtyTracking>true</enableDirtyTracking>
<enableLazyInitialization>false</enableLazyInitialization>
<enableAssociationManagement>false</enableAssociationManagement>
<enableExtendedEnhancement>false</enableExtendedEnhancement>
</configuration>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在进一步研究 Hibernate 文档时,我发现了另外三个属性:
enableLazyInitialization, enableAssociationManagement, enableExtendedEnhancement. 但我在互联网上找不到太多关于它的信息。
如果我理解正确,是否enableAssociationManagement使双向关系的独立处理变得多余并替换enableLazyInitialization为enableDirtyTracking反射?
不幸的是,我找不到任何关于enableExtendedEnhancement. 这就是为什么我有与上述相同的问题。我应该只使用它吗?或者由此产生哪些缺点?
我正在尝试构建微服务架构。但是自从两天以来,我一直在与OAuth2和Zuul 挣扎。我设法在同一服务上运行Auth / Resource-Server,但没有使用Zuul。目前,我正在使用其他服务,授权不再起作用。我尝试了许多指南(例如,Baeldung),但没有人为我工作。可能是因为我正在使用Spring Boot 2.0.3吗?大多数使用Spring Boot 1.5.x的指南。
我认为这是配置问题。我正在使用Eureka进行服务发现,Zuul是网关和入口点。当用户请求受保护的服务时,应将其重定向到我的身份验证服务(OAuth2 / JWT)。他登录后获得的令牌应由Zuul存储(对吗?)。实际上Zuul没有得到令牌或没有存储令牌。我是否必须自己执行此操作,还是应该由Zuul和OAuth管理此操作,而我的配置却很糟糕?有人可以告诉我,如何配置这种架构或Spring Boot 2.0.3的新指南/工作指南?我真的很沮丧,需要帮助。我是Spring的新手,但必须学习它才能上班。但是此刻,我太紧张了。
其他信息:
我现在没有创建任何视图。我刚刚定义了一些默认控制器,它们返回Strings并由固定@PreAuthorize。
网关服务:
GatewayServiceApplication.java
@SpringBootApplication
@EnableZuulProxy
@EnableDiscoveryClient
@Configuration
public class GatewayServiceApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayServiceApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
SecurityConfig.java
@Configuration
@EnableOAuth2Sso
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception …Run Code Online (Sandbox Code Playgroud) java spring-security spring-boot spring-security-oauth2 netflix-zuul
@BeforeAll和@AfterAll必须是静态的。所以我不能使用JdbcTemplate。我应该如何清空数据库?
我现在使用@PostConstruct在一个方法中初始化了数据。但是我找不到工作的同行。我曾考虑过将计数器添加到@AfterEach并在最后一次执行时删除数据库。但这不是一个很好的解决方法。
我现在已经在这里查看了各种问题和答案,但找不到解决方案。登录及其重定向工作完美。仅当我登录时,我总是收到“无效的redirect_uri”。URL 准确返回服务的地址:
服务 URL:https://subdomain.subdomain.xy-lab.ch
URL 中的重定向 URI:https://subdomain.subdomain.xy-lab.ch/ (https://lernoase-auth.subdomain.xy-lab.ch/realms/Lernnomaden/protocol/openid-connect/logout?redirect_uri=https%3A%2F%2Fsubdomain.subdomain.xy-lab.ch)
我已经测试了 Keycloak 中 URL 的所有可能组合。有和没有HTTPS,“”“/”和“/*”等,可能是什么原因?
我的 ln-frontend 的 Keycloak-Config 如下所示:
Angular 我使用了keycloak-angular并配置如下:
// enviroment.json
const keycloakConfig: KeycloakConfig = {
url: 'https://lernoase-auth.subdomain.xy-lab.ch/',
realm: 'Lernnomaden',
clientId: 'ln-frontend',
};
// keycloak-initializer.js
export function initializer(keycloak: KeycloakService): () => Promise<boolean> {
const options: KeycloakOptions = {
config: environment.keycloak,
loadUserProfileAtStartUp: true,
initOptions: {
onLoad: 'check-sso',
silentCheckSsoRedirectUri: window.location.origin + '/assets/silent-check-sso.html',
},
};
return () => keycloak.init(options);
}
Run Code Online (Sandbox Code Playgroud) java ×2
spring-boot ×2
angular ×1
hibernate ×1
junit ×1
junit5 ×1
keycloak ×1
lazy-loading ×1
netflix-zuul ×1
orm ×1
spring ×1
spring-test ×1