public interface Plugin {
void execute();
}
public class PluginImpl1 implements Plugin {
public void execute() {
}
}
public class PluginImpl2 implements Plugin {
public void execute() {
}
}
<bean id="plugin1" class="com.example.PluginImpl1" />
<bean id="plugin2" class="com.example.PluginImpl2" />
public class Application {
@Autowired
private Plugin plugin1;
@Autowired
private Plugin plugin2;
public void run() {
plugin1.execute();
plugin2.execute();
}
}
public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Application app = context.getBean(Application.class);
app.run();
}
}