SeaSar之框架搭建和入门案例-yellowcong

SeaSar是日本的一个很火的框架,类似于Spring,开发起来也很快,很牛逼的,我做了一个简单的SeaSar的案例和他开发的环境搭建,大致流程是写好Bean,然后在app.icon这个配置文件中,配置Bean,然后调用

环境搭建

2.3.23版本的Seasar需要的依赖也挺多的,不同的版本依赖的dao包也是不一样的,下面图片的依赖中,jboss的javassist 不是上面的版本,把我坑了一下,句话疼

这里写图片描述

pom.xml配置文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>seasar</groupId>
  <artifactId>demo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo Maven Webapp</name>
  <url>http://maven.apache.org</url>

     <repositories>
        <repository>
            <id>aliyunmaven</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
        <repository>
            <id>seasar</id>
            <url>https://www.seasar.org/maven/maven2/</url>
        </repository>
    </repositories>


  <dependencies>
   <!-- 导入jsp -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2.1-b03</version>
        <scope>provided</scope>
    </dependency>

    <!-- 导入servlet -->
     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
    </dependency> 
    <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>jstl</artifactId>
         <version>1.2</version>
     </dependency>

     <!-- seasar框架 的容器  BEGIN-->
      <dependency>
        <groupId>org.seasar.container</groupId>
        <artifactId>s2-framework</artifactId>
        <version>2.3.23</version>
    </dependency>   

    <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
    <dependency>
        <groupId>aopalliance</groupId>
        <artifactId>aopalliance</artifactId>
        <version>1.0</version>
    </dependency>

    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/jboss/javassist -->
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.21.0-GA</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/ognl/ognl -->
    <dependency>
        <groupId>ognl</groupId>
        <artifactId>ognl</artifactId>
        <version>2.6.9-patch-20070624</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>

     <!-- seasar框架 的容器  END-->

    <!--seasar框架 Dao-->
    <!-- 不同版本的s2-dao依赖的s2-framework不一样 -->
    <dependency>
        <groupId>org.seasar.dao</groupId>
        <artifactId>s2-dao</artifactId>
        <version>1.0.50</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.seasar.container/s2-extension -->
    <dependency>
        <groupId>org.seasar.container</groupId>
        <artifactId>s2-extension</artifactId>
        <version>2.3.23</version>
    </dependency>

  </dependencies>
  <build>
    <finalName>demo</finalName>
     <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <!-- 配置war包的名称 -->
               <warName>hello</warName>
            </configuration>
          </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.4.6.v20170531</version>
                <configuration>  
                    <scanIntervalSecond>10</scanIntervalSecond>  
                    <webApp>  
                        <contextPath>/users</contextPath>  
                    </webApp>  
                    <connectors>  
                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">  
                            <port>8080</port>  
                            <maxIdleTime>60000</maxIdleTime>  
                        </connector>  
                    </connectors>  
                </configuration>
            </plugin>

             <plugin>  
                   <artifactId>maven-compiler-plugin</artifactId>  
                   <version>2.3.2</version>  
                   <configuration>  
                       <source>1.7</source>  
                       <target>1.7</target>  
                       <encoding>UTF-8</encoding>  
                   </configuration>  
            </plugin> 
    </plugins>

  </build>
</project>

入门案例

我们建立一个UserDao的对象,然后通过Seasar来管理Dao,我们通过配置文件的方式来获取到Dao的实例,然后调用里面的方法

这里写图片描述

UserDao

package com.yellowcong.dao;
/**
*
*作者:yellowcong
*日期:2017/08/29
*時間:16:16:38
*描述:用户操作的Dao
*/
public interface UserDao {

    /**
     * 获取用户名称
     * @param username
     * @return
     */
    String getUserName(String username);
}

UserDaoImpl

package com.yellowcong.dao.impl;

import com.yellowcong.dao.UserDao;

/**
*
*作者:yellowcong
*日期:2017/08/29
*時間:16:17:32
*描述:
*/
public class UserDaoImpl implements UserDao{

    @Override
    public String getUserName(String username) {
        return "Doubi"+username;
    }

}

app.icon

注册我们配置的Dao

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">

<components>
    <component name="userDao" class="com.yellowcong.dao.impl.UserDaoImpl"/>
</components>

Demo.java

调用我们的配置文件,通过seasar来获取Dao对象

package com.yellowcong.test;

import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;

import com.yellowcong.dao.UserDao;

/**
 *
 * 作者:yellowcong 日期:2017/08/29 time:15:58:24 描述:
 */
public class Demo {

    //配置文件的位置
    private static final String APP_PATH = "app.dicon";

    public static void main(String[] args) {
        //获取到容器对象
        S2Container container = S2ContainerFactory.create(APP_PATH);

        //容器初始化
        container.init();

        UserDao userDao = (UserDao) container.getComponent("userDao");

        String str = userDao.getUserName("yellowcong");

        System.out.println(str);
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值