Seasar2(S2Container),简单的说,是比spring一样提供DI功能的框架,但比Sping轻量级。
比理论来说本人更喜欢实际操作和调试,接下来,就让我们开始Seasar2之旅吧。
首先,先下载和安装JDK,Eclipse,Tomcat
JDK 下载:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 下载JDK 6 Update 22
Eclipse 下载:http://www.eclipse.org/downloads/ 下载Eclipse IDE for Java EE Developers
Tomcat 下载:http://tomcat.apache.org/download-60.cgi 下载32-bit Windows zip
接下来,下载Seasar2(S2Container)
http://s2container.seasar.org/2.4/ja/downloads.html 下载S2Container
把下载后的S2Container解压缩,主要关注下2个文件夹
「lib」文件夹:包含S2Container以及相关库。
「doc」文件夹:S2Container的相关文档。
接下来,开始用S2Container开发。
使用Eclipse新建项目,「File」⇒「New」⇒「Dynamic Web Project」,项目名叫“seasar”。
把下面jar包拷贝到lib目录下,并加入到Build Path里。
(1)使用S2Container必须的文件
s2-framework-2.4.42.jar
commons-logging-1.1.1.jar
javassist-3.4.ga.jar
ognl-2.6.9-patch-20090427.jar
(2)使用S2AOP必须的文件
aopalliance-1.0.jar
(3)使用Java EE服务器以外的Servlet容器(比如Tomcat)时必须的文件
geronimo-jta_1.1_spec-1.0.jar
新建Bean类(DataBean.Java)
- package jp.seasar.framework;
-
- import java.util.Date;
-
- public class DataBean {
- private String title;
- private java.util.Date time;
- private String memo;
-
- public DataBean() {
- }
-
- public DataBean(String title, Date time, String memo) {
- this.title = title;
- this.time = time;
- this.memo = memo;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public java.util.Date getTime() {
- return time;
- }
-
- public void setTime(java.util.Date time) {
- this.time = time;
- }
-
- public String getMemo() {
- return memo;
- }
-
- public void setMemo(String memo) {
- this.memo = memo;
- }
-
- @Override
- public String toString() {
- return "Title:" + title + ",Date:" + time + ",Memo:" + memo;
- }
-
- }
新建管理Data的接口(TestBean.java)
- package jp.seasar.framework;
-
- import java.util.ArrayList;
-
- public interface TestBean {
-
- public java.util.ArrayList<DataBean> getDatalist();
-
- public void setDatalist(ArrayList<DataBean> list);
-
- public void addData(String title, java.util.Date time, String memo);
-
- public void removeData(int i);
-
- public String toString();
- }
新建管理Data的实现类
- package jp.seasar.framework;
-
- import java.util.ArrayList;
- import java.util.Date;
-
- public class TestBeanImpl implements TestBean {
-
- private ArrayList<DataBean> datalist;
-
- public TestBeanImpl() {
- datalist = new ArrayList<DataBean>();
- }
-
- @Override
- public ArrayList<DataBean> getDatalist() {
- return datalist;
- }
-
- @Override
- public void setDatalist(ArrayList<DataBean> list) {
- datalist = list;
-
- }
-
- @Override
- public void addData(String title, Date time, String memo) {
- datalist.add(new DataBean(title, time, memo));
-
- }
-
- @Override
- public void removeData(int i) {
- datalist.remove(i);
- }
-
- @Override
- public String toString() {
- String result = "<table border=/"1/">";
-
- for (DataBean bean : datalist) {
- result += "<tr>";
- result += "<td>" + bean.getTitle() + "</td>";
- result += "<td>" + bean.getTime().toString() + "</td>";
- result += "<td>" + bean.getMemo() + "</td>";
- result += "</tr>";
- }
- result += "</table>";
- return result;
- }
-
- }
新建S2Container的配置文件(app.dicon)
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
- "http://www.seasar.org/dtd/components24.dtd">
- <components>
- <component name="mybean" class="jp.seasar.framework.TestBeanImpl" />
- </components>
新建Servlet(Servlet1.java)
- package jp.seasar.framework;
-
- import java.io.IOException;
-
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- import org.seasar.framework.Container.S2Container;
- import org.seasar.framework.container.factory.S2ContainerFactory;
-
- @WebServlet("/serv1")
- public class Servlet1 extends HttpServlet {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
-
- S2Container container = S2ContainerFactory.create("app.dicon");
- container.init();
- TestBeanImpl bean = (TestBeanImpl) container.getComponent("mybean");
-
- bean.addData("1", new java.util.Date(), "This is test.");
- bean.addData("2", new java.util.Date(), "这是测试。");
-
- resp.setContentType("text/html; charset=UTF-8");
- resp.setCharacterEncoding("UTF-8");
-
- java.io.PrintWriter out = resp.getWriter();
- out.print("<html><head></head>");
- out.print("<body>");
- out.print("<h5>");
- out.print(bean.toString());
- out.print("</h5>");
- out.print("</body></html>");
-
- }
-
- }
配置web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
- <display-name>seasar2</display-name>
- <servlet>
- <servlet-name>serv1</servlet-name>
- <servlet-class>jp.seasar.framework.Servlet1</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>serv1</servlet-name>
- <url-pattern>/serv1</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
- </web-app>
编译发布到Tomcat
==============================================
本文没有写完,还需要修改,不明之处,还请谅解。