SSI框架开发注意

来源:互联网 发布:上海仙知机器人 编辑:程序博客网 时间:2024/05/20 07:13

  我本来是擅长SSH2框架的,但是没有办法,公司的项目是SSI框架,而且是struts1。最近迁移公司的一个项目,对公司的SSI架构才使真正的了解了。多的话不说了,直接说重点。

此框架要注意的配置文件有4个,从spring配置文件里面分出来的不算,struts-config.xml分多个写也不算。基本上就只有3个:web.xml、application.bean.xml、struts-config.xml,sql-config-map.xml

外加一个struts1的action-servlet.xml,这个配置文件好像是struts1有的,struts2没有,原因是struts1与servlet绑在一起在。所以很多人觉得struts1跟servlet一样。

1.多个struts-config.xml在web.xml里是可以配置的,用“,”隔开,而且都要重复写/WEB-INF/struts/,注意前面的/不能掉,

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts/common-struts-config.xml,
/WEB-INF/struts/struts-config_1_a.xml,
/WEB-INF/struts/struts-config_2_b.xml,
/WEB-INF/struts/struts-config_3_c.xml                             ps:前面的路径名可以改
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>convertNull</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>                   
</servlet>

2.spring的配置文件application.bean.xml配置service不说了,要说的是每个service要ref的dao,这里有一点区别就是一个的parrent=“代理名”(org.springframework.transaction.interceptor.TransactionProxyFactoryBean包下),一个parrent=“jdbcDaoTelmplate”

<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation">
<value>classpath:conf/pzwj/sql-map-config.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<bean id="DaoTemplate"
class="org.springframework.orm.ibatis.support.SqlMapClientDaoSupport"
abstract="true">
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
<!-- Spring JDBC -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource"><ref bean="dataSource"/></property>
</bean>

3.sql-comfig-map.xml这个里面是配置的ibatis的各声明namespace的配置文件,如果不配,会报have no statement in this sqlmapclient错

4.要注意的是在serviceImpl里定义一个dao,这个dao要提供get、set方法,不然就会报********setter,getter

5.dto字段与表名不一致,或者dto字段与ibatis的配置文件的字段不一致,会报type******opener    ”."

6.要注意配置好的按住ctrl建都会出现下划线,application里的如class=“”,ibatis的xml里type="“,唯一不会出现的是sql的配置文件<sqlMap resource="" />里不会出现

7.daoImpl里要声明namespace=”“,要与ibatis的配置文件里声明的一致

public class **SqlMapDAO extends SqlMapClientDaoSupport implements**DAO {
// 标识 sqlmap 配置中的节点名前缀
private static String NAME_SPACE = "a.";//注意有个”.“

下面是ibatis配置文件

<sqlMap namespace="a">//注意没有”.“

<typeAlias alias="jySiteFlash" 
type="com.heer.jy.siteFlash.dto.JySiteFlashDTO"/>   PS:这里是对应的DTO
<resultMap id="jySiteFlashResult" class="jySiteFlash">       

8.在serviceImpl里声明的***dao要与application里ref、bean里的名字一致,不然会报***Dao 初始化错误


好了,就写到这里,其实要注意的远比这个多。不过把各层关系搞清楚,构架结构搞明白就简单多了,到时候你会说话的时候都自己去配置了。呵呵

原创粉丝点击