ssh中自己初始化Spring

来源:互联网 发布:男生衣服软件 编辑:程序博客网 时间:2024/06/16 06:37

在SSH整合中,自己来初始化Spring。一个小白的自我记录

 这样做不用Spring来管理Action。需要用到Service的时候就自己去获取,这只是一种方式。比较适用于XML的形式来开发项目,如果是用注解的方式开发项目就不用在意这种方式。


1.创建自己类,来简单管理Spring。


package com.ssh.util;import org.springframework.context.support.ClassPathXmlApplicationContext;public class BeanFactory {private static ClassPathXmlApplicationContext beanFactory = null;public static void init(String path){beanFactory = new ClassPathXmlApplicationContext(path);}private BeanFactory() {}public static Object getBeanFactory(String id) {return beanFactory.getBean(id);}}

2.自己创建一个Servlet继承HttpServlet,用来初始化,也就是init方法。


package com.ssh.init;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.PropertyConfigurator;import com.ssh.util.BeanFactory;public class InitServlet extends HttpServlet {private static final long serialVersionUID = 1L;public InitServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}// 初始化方法,在这个init方法中,也可以加入比如log4j等,用于项目启动时初始化public void init() throws ServletException {// 启动时,初始化Spring.xmlBeanFactory.init("/spring.xml");}}


3.创建好servlet以后,就要去web.xml配置,启动时去加载我们自己建立的servlet。


<!-- 启动时初始化Spring用自己创建的方式(Servlet) --><servlet>    <servlet-name>myInitServlet</servlet-name>    <servlet-class>com.ssh.init.InitServlet</servlet-class>    <load-on-startup>1</load-on-startup></servlet>


在Action中获取Service的方式如下

如果在某个Service中使用其他的Service,也可这么使用,我主要是以XML形式来开发项目,这么获取Service对我来说省去了很多Sring.xml的配置。Spring.xml也就是bean.xml或者applicationcontext.xml。


package com.ssh.action;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;import com.ssh.model.User;import com.ssh.service.impl.UserService;import com.ssh.util.BeanFactory;public class UserAction extends ActionSupport {private static final long serialVersionUID = 1L;public String toSuccess() {try {// userService需要在Spring.xml中配置好。UserService service = (UserService) BeanFactory.getBeanFactory("userService");// 这个地方实际上是从页面中获取的值,在这只是一个演示。User u = new User();u.setUsername("username");u.setPassword("password");service.addUser(u);return "success";} catch (Exception e) {e.printStackTrace();return "fail";}}}



原创粉丝点击