SSH2架構,註解模式-屌絲版

來源:互聯網
上載者:User

    SSH架構確實是很煩人的一個地方,會出錯的地方很多,不是缺少包就是包重複,或是配置錯誤。我花了一整天的時間,整理了一下,構建出一個可啟動並執行項目,用的架構分別是struts2.3,hibernate3.0和spring3.1,基於註解的方法,使用的資料庫是mysql,IDE是myeclipse(其它均可)。註解的好處是不用寫許多的設定檔,本人也是比較喜歡的。

    這個項目只是一個最基本的能啟動並執行由ssh2架構的項目,不包含其它功能,所以我稱它為屌絲版。後期會給它加上一些進階功能,在這先賣下關子哈哈,我還不知道要加哪些才好)。

首先建立一個eclipse web項目。其次就是添加包。這裡我就不詳細說了。因為我還沒有到大神程度,

650) this.width=650;" style="float:right;" title="1.png" alt="094140770.png" src="http://www.bkjia.com/uploads/allimg/131229/12224a436-0.png" />

不能給各位仔細解釋各個包

的用途,所以只能一股腦地加進去。這些包等下我會提供。






















添加完包之後是修改web.xml檔案WEB-INF目錄下)。現在先進行struts過濾器配置,用來攔截網頁請求。如下:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><filter><filter-name>struts</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts</filter-name><url-pattern>*.action</url-pattern></filter-mapping></web-app>

配置完之後在根目錄下建立一個Source Folder,我把它取名為resources,用來存放設定檔。目錄結構如下。

650) this.width=650;" title="2.png" alt="095448740.png" src="http://www.bkjia.com/uploads/allimg/131229/1222495a0-1.png" />

在resources目錄下建立一個struts.xml設定檔。配置struts的基本資料。由於需要用spring管理,所以預先加上一句<constant name="struts.objectFactory" value="spring" />

代碼如下

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 指定wb應用的預設編碼集 --><constant name="struts.i18n.encoding" value="UTF-8" /><!-- 指定struts的請求尾碼,預設為action --><constant name="struts.action.extension" value="action" /><!-- 設定瀏覽器是否緩衝靜態內容,預設值為true,開發環境最好關閉 --><constant name="struts.serve.static.browserCache" value="false" /><!-- 設定檔修改時是否自動重新載入該檔案,預設值為false,開發階段最好開啟 --><constant name="struts.configuration.xml.reload" value="true" /><!-- 是否允許動態方法引動過程 --><constant name="struts.enable.DynamicMethodInvocation" value="true" /><!-- 開發模式 --><constant name="struts.devMode" value="true" /><!-- 與spring進行整合 --><constant name="struts.objectFactory" value="spring" /><!-- 上傳檔案的大小 --><constant name="struts.multipart.maxSize" value="10485760" /><include file="ref/login.xml" /></struts>

struts至此基本就配置完成了。現在開始配置spring

在resources目錄下面建立一個jdbc.properties檔案,用來儲存資料庫資訊。

#mysqljdbc.Driver=com.mysql.jdbc.Driverjdbc.Url=jdbc:mysql://localhost:3306/testjdbc.username=gyhjdbc.password=passwdhibernate.dialect=org.hibernate.dialect.MySQLDialect##sql Server#jdbc.Driver=com.microsoft.sqlserver.jdbc.SQLServerDriver#jdbc.Url=jdbc:sqlserver://localhost:4462;DatabaseName=test#jdbc.username=sa#jdbc.password=123#hibernate.dialect=org.hibernate.dialect.SQLServerDialect

此處我添加了mysql與sql server的資訊,前面加#號的表示注釋。

在resources目錄下面建立一個spring.xml檔案,用來配置spring,內容如下。由於將hibernate交給spring管理,所以不用添加hibernate設定檔。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.1.xsd"><!-- 使用註解的方式 --><context:annotation-config /><!-- 自動掃描包 --><context:component-scan base-package="com.*" /><!-- 引入參數設定檔 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:jdbc.properties" /></bean><!-- 配置資料來源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="${jdbc.Driver}" /><property name="jdbcUrl" value="${jdbc.Url}" /><property name="user" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!--初始化時擷取的串連數,取值應在minPoolSize與maxPoolSize之間。Default: 3 --><property name="initialPoolSize" value="1"/><!-- 串連池中保留的最小串連數 --><property name="minPoolSize" value="1"/><!-- 串連池中保留的最大串連數 --><property name="maxPoolSize" value="300"/><!-- 最大空閑時間,若60秒內未使用則丟棄。預設為0,即永不丟棄 --><property name="maxIdleTime" value="60"/><!--每60秒檢查所有串連池中的空閑串連。Default: 0 --><property name="idleConnectionTestPeriod" value="60"/></bean><!-- sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="packagesToScan" value="com.*"/><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop><prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop></props></property></bean><!-- hibernateTemplate --><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><constructor-arg index="0"><ref bean="sessionFactory"/></constructor-arg></bean></beans>

配置好spring資訊還需要在web.xml檔案中加上spring的監聽器,修改後的web.xml內容如下

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><filter><filter-name>struts</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts</filter-name><url-pattern>*.action</url-pattern></filter-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener></web-app>

至此,架構的配置基本上就完成了。現在給它加上一些功能進行測試。先在資料庫中添加資料。

代碼如下。

mysql> use test;Database changedmysql> create table tab_user(-> id int primary key auto_increment,-> username varchar(20),-> password varchar(20)-> );Query OK, 0 rows affected (0.17 sec)mysql> insert into tab_user(username,password) values('gyh','passwd');Query OK, 1 row affected (0.09 sec)

把執行過的sql檔案儲存在建立的update目錄下面。添加完成之後加上一些方法進行測試,

基本的配置至此完成。下面是目錄結構

650) this.width=650;" title="3.png" alt="112902783.png" src="http://www.bkjia.com/uploads/allimg/131229/1222496323-2.png" />


這裡是項目源碼。

本文出自 “先生有火嗎” 部落格,請務必保留此出處http://88qlp88.blog.51cto.com/4346152/1334092

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.