ssh中自己初始化Spring

在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.xml
		BeanFactory.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";

		}

	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值