我有一个核心项目,处理常见问题并应用方面,称为“common”。服务项目将此核心项目用于常见流程。
我必须在“通用”中管理异常处理,并且我必须从通用的属性文件中读取消息。但是服务也可以有自定义消息。
所以我把一条消息放在共同点上
MessageUtils.java
@Component
public class MessageUtils {
@Autowired
private MessageSource messageSource;
private static MessageSourceAccessor accessor;
@PostConstruct
private void init() {
accessor = new MessageSourceAccessor(messageSource, Locale.ENGLISH);
}
public static String getMessage(String messageKey) {
return accessor.getMessage(messageKey);
}
}
共同点是,我有common-messages.properties
|-src/main/resources
|--common-messages_en.properties
允许将服务命名为service\u 1,该服务依赖于Common。
Service\u 1还有Service-messages\u en。属性
|-src/main/resources
|--service-messages_en.properties
为了注入常见的特定配置,我声明了一个Config类,并将其导入服务的Spring Boot初始化程序类中。我还将“common-messages_en.properties”定义为Common Config中的属性源。
CommonConfig。Java语言
@ComponentScan({ "com.example.common.core"})
@EntityScan({ "com.example.common.entity" })
@EnableJpaRepositories(basePackages = { "com.example.common.dao" })
@PropertySource(value = { "classpath:common-messages_en.properties"})
public class CommonConfig {
}
因此,在Service\u 1中,我有一个启动SpringBoot应用程序的BootApp类。CommonConfig也在那里导入。
@SpringBootApplication
@Import(CommonConfig.class)
public class BootApp extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(BootApp.class, args);
}
}
当我打电话时
MessageUtils.getMessage("someMessageKey.thatDefinedIn.Service");
没关系,我可以阅读服务信息。
但当我想在服务中阅读一条普通信息时;
MessageUtils.getMessage("someMessageKey.thatDefinedIn.Common");
它获取NoSuchMessageException。
如何正确合并不同jar中的不同属性文件?
好啊当我在这样引导时初始化一个可重新加载的ResourceBundleMessageResource时;
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new
ReloadableResourceBundleMessageSource();
messageSource.setBasenames("classpath:service-messages","classpath:common-messages");
messageSource.setCacheSeconds(3600); //refresh cache once per hour
return messageSource;
}
(假设默认区域设置为“en”)我可以在运行时访问公共消息和服务消息。
我有2个项目: 项目A在src/main/resources中有folder/file.ext。构建时,它存在于a.jar中。 项目B引用了代码中的某个位置的folder/file.ext。 我不能改变项目A或B或它们的构建方式。 从命令行运行project B时: 我正在获得一个FileNotFoundException。 我想知道,是否有一种方法可以使它工作,使folder/file.ext对
问题内容: 有没有一种工具可以列出包含JAR中引用的(第三方)类的第三方“软件包”?假设它将从JAR文件定义中识别出什么是“ home”包,并且它将打印出JAR中引用的最高3级的第三方类的标准名称的列表。 目的是我需要找到该JAR文件的Maven依赖项并将其部署为Maven工件。 问题答案: JarAnalyzer: jar文件的依赖项管理实用程序。它的主要目的是遍历目录,解析该目录中的每个jar
在阅读了关于这个主题的大约50个不同的线程后,我还没有能够有任何解决方案工作。 我正在尝试访问JAR中的config.properties文件。 null null file.jar MyApp 此处的files.class 等… icon.jpg config.properties
问题内容: 如何访问组件的属性。我以为会在this.props中,但事实并非如此。 例如 并在产品列表中 退货 没有任何关键属性。我可以创建另一个属性并为其分配相同的值,但是由于key属性已经被使用,因此这似乎是多余的。 另外,键属性在整个组件中是否必须是唯一的,还是仅在其要呈现的循环或集合中是唯一的? 问题答案: 该属性由React在后台使用,并且不会暴露给您。您将要使用自定义属性并将该数据传递
我在网络空间自由 17.0.0.4 上运行。部署了位于 目录下的 Web 应用程序和自定义身份验证模块。该jar文件被标记为服务器.xml文件中的。以下是它在服务器中的外观.xml 现在的问题是,我想使用文件位于文件到Web应用程序。 已尝试访问以下代码片段: 但是,两者都不起作用。 知道如何访问位于库jar文件中的属性文件吗?
我的构建通过直接在