Java 应用程序初始化的首选方式
你们有自己的项目启动小框架吗?我的意思是,每次一开始就需要做同样的事情:Java 应用程序初始化的首选方式,java,spring,initialization,startup,Java,Spring,Initialization,Startup,你们有自己的项目启动小框架吗?我的意思是,每次一开始就需要做同样的事情: 上下文初始化-理想情况下是在处理参数之后。有时没有交互式用户输入,有时使用输入阅读器。有时我们需要加载属性,有时不需要。然后我们需要从上下文中获取一个类并运行它的方法。编程…编程直到编写shell脚本将所有内容放在类路径上 诚然,它根据实际需要而有所不同。但在我看来,我一直在做几乎相同的事情,一次又一次地从头开始。有时我意识到我之所以推迟工作,只是因为我不想做这些令人讨厌的初创公司 如果有某种通用的主类对指定的bea
上下文初始化-理想情况下是在处理参数之后。有时没有交互式用户输入,有时使用输入阅读器。有时我们需要加载属性,有时不需要。然后我们需要从上下文中获取一个类并运行它的方法。编程…编程直到编写shell脚本将所有内容放在类路径上
诚然,它根据实际需要而有所不同。但在我看来,我一直在做几乎相同的事情,一次又一次地从头开始。有时我意识到我之所以推迟工作,只是因为我不想做这些令人讨厌的初创公司
如果有某种通用的主类对指定的bean进行反射、上下文初始化、参数解析、交互式用户输入读取,并让程序员做一些重要的事情,那就太好了……所有的设置都可以通过spring配置完成。我想我得自己做 我很感激你的想法
编辑:我将要做的:某种启动类,它将获得用户和开发人员参数(spring上下文文件的路径、使用用户参数设置的bean和实例化的bean、提供spring上下文并运行)。用于参数解析的轻量级api,可能用于交互式用户输入,这可能很难我使用一个抽象基类,所有命令行实用程序都是从该基类启动的。初始化过程定义了一些基本的启动生命周期方法。我不使用命令行参数
public abstract class MyAppBase {
public abstract String[] getSpringConfigResource();
public void loadConsoleApplication() {
try {
preLoad();
initializeSpring();
loadConfiguration();
loadDynamicComponents();
postApplicationLoad();
}
catch (Exception ex) {
handleStartupException("error initialzing application", ex);
}
}
...
}
具体的子类看起来像:
public class MyApp extends MyAppBase {
public String[] getSpringConfigResource() {
return new String[] { "someapp/appctx.xml", "util/appctx2.xml" };
}
protected void postApplicationLoad() {
SomeServer server = springCtx.getBean("server");
server.start();
}
public static void main(String args[]) {
initLogging("com/me/myAppLog4j.xml", MyApp.class);
MyApp myApp = new MyApp ();
myApp.loadConsoleApplication();
}
}
出于某种原因,我的基于swing的非交互式应用程序中没有一个使用命令行参数(
args[]
),因为这些参数往往是带有安装程序和属性文件的服务。对于我的意思,这是一个非常好的设计。。此模板方法模式。谢谢分享