bean的id属性是必须的吗
spring的singleton和prototype的区别和应用场合?
spring的singleton和prototype的区别和应用场合?
singleton作用域:当把一个Bean定义设置为singleton作用域是,Spring IoC容器中只会存在一个共享的Bean实例,并且所有对Bean的
请求,只要id与该Bean定义相匹配,则只会返回该Bean的同一实例。值得强调的是singleton作用域是Spring中的缺省作用域。
prototype作用域:prototype作用域的Bean会导致在每次对该Bean请求(将其注入到另一个Bean中,或者以程序的方式调用容器的getBean
()方法)时都会创建一个新的Bean实例。根据经验,对有状态的Bean应使用prototype作用域,而对无状态的Bean则应该使用singleton作用
域。
对于具有prototype作用域的Bean,有一点很重要,即Spring不能对该Bean的整个生命周期负责。具有prototype作用域的Bean创建后交由调
用者负责销毁对象回收资源。
简单的说:
singleton 只有一个实例,也即是单例模式。
prototype访问一次创建一个实例,相当于new。
应用场合:
1.需要回收重要资源(数据库连接等)的事宜配置为singleton,如果配置为prototype需要应用确保资源正常回收。
2.有状态的Bean配置成singleton会引发未知问题,可以考虑配置为prototype。
jsp:useBean是什么意思呢?
简单地说,就是先写一个Bean(也就是特殊一点的Java类)并编译。而后在某个jsp页面中需要用到这个类时,就用这个动作来使用之前写好的Bean。所以这个Bean也可以称为java里的组件。 这一句里,class属性表示要使用哪个类(即Bean),这里是ckstudio.db.faq,而id属性表示所生成的实例名称,这里是mdb,scope属性表示该实例的生存期,这里是page,即在同一个会话期中有效。 使用javaBean一定程度上可以将java处理代码从jsp页面中分离。
jsp用于给bean对象赋值的标签?
jsp:useBean idinfodao class scopepage / 定义的变量,必须使用标签获取属性和赋值属性。
jsp:getProperty nameinfodao propertyabc用来获取infodao的abc成员变量的值。
useBean标签不是像你这种用法的。再有useBean标签已经没人用了。 直接用脚本标签创建对象就完了。
% MyBeanDao infos new MyBeanDAo(); infos (我是透明的); %