项目中spring创建对象的2种方式
1.基于xml的创建
<bean id="shjzToDsrManager" class="jap.shjz.manager.ShjzToDsrManager" scope="prototype" />
作用域:
(1)singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。
(2)prototype:为每一个bean请求提供一个实例。
(3)request:为每一个网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。
(4)session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。
(5)global-session:全局作用域,global-session和Portlet应用相关。当你的应用部署在Portlet容器中工作时,它包含很多portlet。如果你想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。全局作用域与Servlet中的session作用域效果相同。
2.@Autowired基于注解的创建
package jap.shjz.manager.znyp.process;
import com.util.FieldList;
import com.web.base.AbstractFormProcess;
import com.web.base.PerformException;
import jap.shjz.manager.znyp.BulkReceiveManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
@Scope("prototype")
@Service("generateDeptDetailProcess")
public class GenerateDeptDetailProcess extends AbstractFormProcess {
@Autowired
BulkReceiveManager bulkReceiveManager;
@Override
public void process(String s, FieldList fieldList, HttpServletRequest httpServletRequest) throws PerformException {
}
@Override
public void afterProcess(FieldList fieldPk, HttpServletRequest request) throws PerformException {
//String pkConsumeDetail = request.getParameter("pk_id");
String pk_ids = request.getParameter("pk_ids");
String[] pk_idsArray = pk_ids.split(",");
for (int i = 0; i < pk_idsArray.length; i++) {
try {
bulkReceiveManager.bulkReceive(pk_idsArray[i]);
} catch (Exception e) {
throw new PerformException(new StringBuilder("接收失败[").append(e.getMessage()).append("]").toString());
}
}
}
}