1. @Component @Component(role = MyComponent.class, instantiationStrategy = "per-lookup") public class MyComponentImpl implements MyComponent { // Component implementation code } 2. @Requirement @Component(role = MyComponent.class, instantiationStrategy = "singleton") public class MyComponentImpl implements MyComponent { @Requirement private AnotherComponent anotherComponent; // Component implementation code } 1. components.xml <component> <role>MyComponent</role> <role-hint>default</role-hint> <implementation>com.example.MyComponentImpl</implementation> </component> <component> <role>AnotherComponent</role> <implementation>com.example.AnotherComponentImpl</implementation> </component> 2. plexus.xml <component-repository> <components> <component>components.xml</component> </components> </component-repository> MyComponent.java public interface MyComponent { void doSomething(); } MyComponentImpl.java @Component(role = MyComponent.class, instantiationStrategy = "per-lookup") public class MyComponentImpl implements MyComponent { @Requirement private AnotherComponent anotherComponent; public void doSomething() { // Component implementation code anotherComponent.doSomethingElse(); } } AnotherComponent.java public interface AnotherComponent { void doSomethingElse(); } AnotherComponentImpl.java @Component(role = AnotherComponent.class, instantiationStrategy = "singleton") public class AnotherComponentImpl implements AnotherComponent { public void doSomethingElse() { // Component implementation code } } components.xml <component> <role>MyComponent</role> <role-hint>default</role-hint> <implementation>com.example.MyComponentImpl</implementation> </component> <component> <role>AnotherComponent</role> <implementation>com.example.AnotherComponentImpl</implementation> </component> plexus.xml <component-repository> <components> <component>components.xml</component> </components> </component-repository>


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