我有一个我的servlet在每个页面请求上实例化的类。该类具有静态初始化程序,静态变量,其余包含非静态公共或私有成员,构造函数等。
这样安全吗?我不想在我的servlet的整个生命周期中调用静态初始化程序,但只需一次。
使用Tomcat。据我所知,每次类加载器加载类时,都会调用静态初始化程序。根据我的要求,这应该是我(使用tomcat)的问题吗?
答案 0 :(得分:1)
没有问题,除非您修改静态变量,因为它将被所有请求共享。如果您根据该变量做出任何决定,则会出现并发问题。
静态初始化发生在类加载时,因此只会发生一次。
答案 1 :(得分:0)
除非你在第二节课中保持状态,否则你不应该担心实例化的数量。静态初始化程序可以正常运行。没有什么难的方法可以在整个生命周期内执行一次"行为。
将你的单身人士变成一个多声道有很多容易和很多的黑客攻击所以我不担心它。如果你是一个顽固的狂热者,那就使用Spring或者Pico其他只是不在第二课中保持状态只与你的servlet进行无状态对话,一切都会很好。