<dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.scr.annotations</artifactId> <version>1.9.14</version> </dependency> import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Modified; import org.osgi.service.component.annotations.Deactivate; import org.osgi.service.metatype.annotations.AttributeDefinition; import org.osgi.service.metatype.annotations.ObjectClassDefinition; @Component(service = LocalizationService.class) public class LocalizationService { @ObjectClassDefinition(name = "Localization Service Configuration") public @interface Configuration { @AttributeDefinition(name = "Default Locale") String defaultLocale() default "en_US"; } private String defaultLocale; @Activate protected void activate(Configuration configuration) { this.defaultLocale = configuration.defaultLocale(); } @Modified protected void modified(Configuration configuration) { this.defaultLocale = configuration.defaultLocale(); } @Deactivate protected void deactivate() { } public String getMessage(String key) { return ResourceBundle.getBundle("messages", new Locale(this.defaultLocale)).getString(key); } } import org.osgi.service.component.annotations.*; import org.osgi.service.component.annotations.Component; @Component public class MyComponent { @Reference private LocalizationService localizationService; public void doSomething() { String message = localizationService.getMessage("hello"); System.out.println(message); } }


上一篇:
下一篇:
切换中文