我通过ssh远程阅读Visual VM,但我认为我还没有完全理解,因为它不适合我:-(请有人举个例子吗?
ssh -D 9696 login@ip.of.external.machine并visualvm.exe -J-Dnetbeans.system_socks_proxy=localhost:9696 -J-Djava.net.useSystemProxies=true启动visualvm,但没有显示外部机器的进程(只有像visualvm本身的本地进程).此外,有时(但并非总是)我在ssh窗口中收到消息"通道3:打开失败:连接失败:连接被拒绝".
有帮助吗?
有多种方法可以将 Vue 项目集成到 Spring Boot 项目中。
使用基于 webpack 的构建工具(例如 vue-cli),我已经通过以下方式成功完成了几次:
outputDir构建过程,使其输出放置在例如/static/dist/(最终)Spring Boot 项目的Java 类路径内。这样,这些静态资源就可以通过 URL 提供服务/dist/...。要在生成中获得正确的 URL,当然index.html 必须publicPath将其设置为/dist/。baseUrl不等于/(在大型生产系统中是必要的)和不等于 /dist/- 假设它baseUrl等于/vue/。现在,在 Spring Boot 中,转发所有匹配的请求/vue/**,/dist/index.html以便 Vue Router 可以接管处理给定的 URL。这样我在生产中就没有出现任何问题。在开发模式下使用提供的开发服务器的行为没有差异 - 实时重新加载(HMR)按预期工作,并且与 Spring Boot 后端通信也没有问题(当然必须为开发服务器配置代理)。
在生产模式下,使用此设置(baseUrl构建过程和 Vue 路由器的不同 s)与 Vite似乎完全没问题!(至少到目前为止我没有遇到任何问题)
但在开发模式下,我遇到了内置开发服务器的几个问题。可能是由于baseUrl我收到的不同信息,例如,如果我重新加载浏览器,则会出现以下消息:
服务器配置了公共基本 URL /dist/ …
类似于 @JsonAppend 的简化版本
public class Bean {
@JsonAppend(key = [...], value = [...])
public Map<?, ?> map = new HashMap<>();
}
Run Code Online (Sandbox Code Playgroud)
那就太好了-有什么简单的方法可以实现这一点吗?
我读过很多 SO 条目,例如。
但没有找到符合我需求的东西。
我的请求的原因是无法区分某些给定的 JSON 是源自 Map 还是 POJO 序列化。如果有必要(在极少数情况下),向地图添加魔法额外字段将是实现此目的的简单方法。
提供AuthenticationSuccessHandlerfor aRememberMeAuthenticationFilter会破坏过滤器链,因此我想onSuccessfulAuthentication通过提供RememberMeAuthenticationFilter. 但是当使用简单的 Java Config 时,这似乎相当复杂或精细。
ApplicationEventPublisher如果需要访问HttpServletRequest或 ,则提供 an不是解决方案HttpServletResponse。
我设法做到了,但它看起来像一个黑客 - 有更好的方法吗?
我是这样做的:
http.rememberMe().addObjectPostProcessor(new ObjectPostProcessor<RememberMeAuthenticationFilter>() {
@Override
public <O extends RememberMeAuthenticationFilter> O postProcess(O object) {
RememberMeAuthenticationFilter newFilter = new RememberMeAuthenticationFilter(
(AuthenticationManager) getByReflection(object, "authenticationManager"),
(RememberMeServices) getByReflection(object, "rememberMeServices")
) {
@Override
protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) {
// business logic
}
};
return (O) newFilter;
}
private <O extends RememberMeAuthenticationFilter> Object getByReflection(O object, String name) { …Run Code Online (Sandbox Code Playgroud) 当使用普通 Hibernate 时,可以通过以下方式完成:
public class MyLocalSessionFactoryBean extends LocalSessionFactoryBean {
// can also be made configurable e.g. with Springs EL...
private Class myIdentifierGeneratorClass = MyIdentifierGeneratorClass.class;
@Override
protected SessionFactory buildSessionFactory(LocalSessionFactoryBuilder sfb) {
Configuration config = getConfiguration();
MutableIdentifierGeneratorFactory identifierGeneratorFactory = config.getIdentifierGeneratorFactory();
identifierGeneratorFactory.register("xyz", myIdentifierGeneratorClass);
return super.buildSessionFactory(sfb);
}
}
Run Code Online (Sandbox Code Playgroud)
现在可以写例如
@MappedSuperclass
public class BaseEntity implements Serializable {
@Id
@GeneratedValue(generator = "generatorName")
@GenericGenerator(name = "generatorName", strategy = "xyz")
private Long id;
}
Run Code Online (Sandbox Code Playgroud)
使用 Hibernate JPA EntityManager 时如何实现这一点?
也许通过利用LocalContainerEntityManagerFactoryBean#postProcessEntityManagerFactory(EntityManagerFactory emf, PersistenceUnitInfo pui)?
我也发现了EntityManagerFactoryBuilderImpl#buildHibernateConfiguration(ServiceRegistry serviceRegistry) …
java ×2
spring ×2
dictionary ×1
hibernate ×1
jackson ×1
jpa ×1
json ×1
spring-boot ×1
spring-data ×1
ssh ×1
visualvm ×1
vite ×1
vue-cli ×1
vue.js ×1