我正在尝试使用exec-maven-plugin集成第三者Java API的方法。我正在使用exec:java目标来调用我的Java主类。我需要解析API的输出,但是在允许此操作的插件中看不到任何特定的东西。
Maven和/或exec-maven-plugin中有没有一种方法可以捕获/保存执行的输出?
我正在尝试在上下文启动之前找到一种方法来记录我的应用程序属性(通过@ConfigurationProperties注入我的bean),这样我就可以在初始化所有bean之前看到确切的属性.
我试图在ApplicationEnvironmentPreparedEvent上创建一个Listener,但是没有办法检索所有定义的属性,而不是一次检索一个属性.
是否有捷径可寻?有些方法首先初始化@ConfigurationProperties并记录其内容,或在创建上下文之前检索所有应用程序启动属性?
Java中是否有指定其他信任库的方法,但如果在指定的信任库中找不到匹配的证书,则java默认为cacerts?我希望能够在几个应用程序中创建一个包含一些我需要的基本证书的信任库,但无需单独更新每个jre的cacerts文件.
我意识到我可以扩展cacerts文件(即:复制并添加到它),但我宁愿拥有一个只有我的附加证书的中央信任库.
我确实发现这个问题已经问过了,但是已经有好几年了,我不知道Java 7,8或9是否已经解决了这个问题.
我发现的所有文档都指向使用javax.net.ssl.trustStore并将其指向我的新信任库,但这将忽略我的cacerts中的所有内容.
如果我指向我的密钥库javax.net.ssl.keyStore,那么我就不能拥有特定于应用程序的密钥库.
理想情况下,我希望能够为java迭代创建一个信任库列表.
Java 7+中是否存在这种情况?
在旧版本的JBoss AS中,Tomcat jasper JSPC编译器可用于预编译JSP页面,以确保它们都是语法上有效的JSP文件.
根据https://access.redhat.com/solutions/175893,从JB EAP 6开始,不再支持JSPC编译器.
我如何在构建/打包过程中验证JSP文件在语法上是否正确?如果没有,似乎唯一的解决方案是在测试阶段启动完整的JB实例并单独导航到每个JSP,以确保每次都能正确编译.
是否没有WildFly支持的机制来在构建阶段验证JSP页面?
有没有办法在 Maven 中使用属性的子字符串来激活配置文件?我希望使用 Jenkins 将分支名称简单地传递到我的构建,并激活一个配置文件(如果它是 release/* 分支)。
有什么方法可以像这样进行参数操作以激活配置文件?前任:
<profiles>
<profile>
<id>appserverConfig-dev</id>
<activation>
<property>
<name>branch</name>
<!-- some form of wildcarding or regex on the parameter value ??? -->
<value>release/.*</value>
</property>
</activation>
<properties>
<appserver.home>/path/to/dev/appserver</appserver.home>
</properties>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
或者是否有更好的方法可以用来仅在构建来自发布分支时激活配置文件?
我正在使用 KeyCloak 3.4.3.FINAL 并查看是否有任何方法可以捕获帐户临时锁定/解锁的情况。我希望编写一个基于事件类型触发的事件监听器,但我似乎找不到在帐户锁定时触发的任何内容。
Keycloak里有这样的Event吗?如果没有,我可以添加自己的自定义事件吗?我可以捕获 AccountModified 事件并处理该事件,但我看到触发的唯一事件是 LOGIN_ERROR,它不会告诉我该帐户是否被暂时禁用/启用。
我试图在扩展中可观察到的 CDI 容器引发的事件的上下文中了解 @Initialized() 事件的生命周期/流程。
- 发现Bean之前
- ProcessAnnotatedType 和 ProcessSyntheticAnnotatedType
- 类型发现后
- ProcessInjectionTarget 和 ProcessProducer
- 进程注入点
- ProcessBean 属性
- ProcessBean、ProcessManagedBean、ProcessSessionBean、ProcessProducerMethod 和 ProcessProducerField
- 进程观察者方法
- 豆子发现之后
- 部署后验证
- 关机前
我无法找到的是在此容器生命周期中将@Initialized触发事件的位置。我怀疑它是 AfterDeploymentValidation 完成的,但我找不到任何文档来支持这一事实。此外,我似乎无法在CDI 1.1 规范中找到任何指示何时/何处抛出 @Initalized 事件的内容。
例如,事件是在@PostConstruct发现的bean的所有方法执行之前还是之后抛出?该事件是在 EJB@Startup初始化之前还是之后引发的?是否有任何文档清楚地列出了 CDI 中这些事件的顺序/顺序?
我一直在努力使它工作几天,却一直在失败。我似乎无法将我的课程正确投射到Introduced接口。我正在使用Spring 3.0.5。
有没有人有使用@DeclareParents的项目的完整工作示例?还是等效的XML?我在网上找到了很多片段,但是也没有成功地使它们起作用。
这是我第一次尝试“简介”,但是要使其工作起来会遇到很多困难。我已经阅读了Spring文档,AspectJ文档以及论坛,但仍然无法正常工作。我以为正确创建了类/接口,但是当我尝试将Advised对象转换为接口时,出现转换错误。
目标:
@实体
@Table(name =“ item”)
公共类Item实现java.io.Serializable {
私人长号;
私有Integer mainType;
私有Integer子类型;
私有String brandName;
私有字符串itemName;
私有Date releaseDate;
私人Date retireDate;
私有字符串fileName;
私有字符串thumbnailName;
私有String维度;
私有布尔活动;
私人布尔值已解锁;
私有Integer unlockCost;
私有布尔值;
公共Item(){
}
...
//一堆吸气剂和二传手
...
}
接口:
公共接口AbstractBaseEntity {
/ **
* @返回customAttributes
* /
公共对象getCustomAttribute(String name);
/ **
* @param customAttributes要设置的customAttributes
* /
公共无效setCustomAttribute(字符串名称,对象值);
}
实现方式:
公共类AbstractBaseEntityImpl实现AbstractBaseEntity {
/ **
*可以为特定实体映射的自定义属性的映射
* /
@短暂的
受保护的地图customAttributes = new ConcurrentHashMap();
/ **
* @返回customAttributes
* /
公共对象getCustomAttribute(字符串名称){
返回customAttributes.get(name);
}
/ ** … 这个线程与我在这里遇到的有关访问受建议类的受保护方法的需求有关.我正在使用Spring 3.0.6,并创建了一个Spring分析方面,我正在使用JDK代理应用于大量的bean.
但是,由于需要访问一个特定bean中的受保护方法,我想使用CGLIB建议它.所有其他bean我想继续使用JDK Proxies.
我使用了注释和xml配置的混合,但这个特定方面是在XML配置中定义的.
我知道有<aop:scoped-proxy>标签,但据我所知,这适用于所有方面.
无论如何要定义单个方面来使用CGLIB吗?
<aop:config>
<aop:aspect id="Profiler" ref="lendingSimulationServiceProfilerInterceptor">
<!-- info -->
<aop:around method="infoProfiler"
pointcut="execution(* com.cws.cs.lendingsimulationservice.service.LendingSimulationServiceImpl.calculate*(..))" />
<!-- debug -->
<aop:around method="infoProfiler"
pointcut="execution(* com.cws.cs.lendingsimulationservice.process.LendingSimulationProcessImpl.calculate(..))" />
<aop:around method="infoProfiler"
pointcut="execution(* com.blaze.BlazeEngine.invokeService(..))" />
<!-- trace -->
<aop:around method="traceProfiler"
pointcut="execution(* com.calculator.dao.impl.LendingSimulationDaoImpl.*(..))" />
<!-- NEED TO DEFINE THIS PARTICULAR ASPECT AS CGLIB -->
<aop:around method="traceProfiler"
pointcut="execution(* com.cws.cs.lendingsimulationservice.util.pool.JAXBPoolImpl.*(..))" />
</aop:aspect>
</aop:config>
Run Code Online (Sandbox Code Playgroud)
我试图将配置拆分为两个,并且对于一个配置指定target-class="true"和另一个target-class="false",但它似乎在那时将CGLIB应用于所有.
有没有办法实现这个目标?
谢谢,
埃里克
我是Spring数据JPA的新手,我正在尝试了解如何在QueryDSL中最好地使用它.没有QueryDSL,我可以使用@Query注释在SpringData接口中创建任何查询.
为了使用QueryDSL获得相同的体验,从我所看到的,我需要创建自己的自定义存储库实现并让我的repo接口扩展我的自定义实现接口或将我的所有QueryDSL查询放在包装我的repo的服务层.
在第一种情况下,我失去了在我的自定义仓库中使用任何SD自动生成方法(例如:findAll(QueryDSL谓词))的能力,因为我无法访问实际的仓库对象,在第二种情况下,我是将查询逻辑放在服务层而不是repo层.
这两种解决方案听起来都不是特别有吸引 有没有第三种方式更合适?或者我误解了如何正确使用QueryDSL和Spring Data?
谢谢!
埃里克
java ×6
aop ×2
maven ×2
spring ×2
annotations ×1
cdi ×1
cglib ×1
ejb ×1
jakarta-ee ×1
jenkins ×1
jsp ×1
keycloak ×1
listener ×1
proxies ×1
querydsl ×1
spring-boot ×1
spring-data ×1
ssl ×1
truststore ×1
wildfly ×1
wildfly-10 ×1