百度雲鏈接 http://pan.baidu.com/s/1pKCphXL
百度雲密碼 1d21
將所有jar包放在lib文件下面。
接下來最重要的五個配置文件。
最先配置數據庫連接文件 十分簡單 代碼就不貼了 百度一下 一大把 (要注意的是自己數據庫訪問的url以及驅動加載)
輸入需要訪問數據庫的url以及數據庫的登錄名以及密碼。然後在其他配置文件中獲取該文件信息。
配置log4j打印日誌 這裏也十分簡單,原封不動的複製上去就可以了。(這個也百度一下吧。因爲這裏沒有什麼要改動的東西)
該文件可用於在控制檯打印基本信息。也可以將信息以文件的方式記載在電腦的某個位置
1.springMVC-servlet文件
//需要掃描的controller文件
<context:component-scan base-package="main.java.com.yxr.controller"/>
<mvc:annotation-driven />
<mvc:default-servlet-handler/>
//轉向界面路徑解析
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- SpringMVC上傳文件時,需要配置MultipartResolver處理器 需要使用導出時進行的spring配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<!-- 指定所上傳文件的總大小不能超過10485760000B。注意maxUploadSize屬性的限制不是針對單個文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10485760000" />
<property name="maxInMemorySize" value="40960" />
</bean>
2.application 文件的配置
開啓註解掃描
<context:annotation-config />
<!-- 設定Spring 去哪些包中找Annotation -->
<context:component-scan base-package="main.java.com.yxr" />
//暫且理解爲找到jdbc的配置文件
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
//明明我將文件放在src.main下面的config包文件下面,爲什麼尋找的路徑卻在這裏 是因爲項目編譯之後會在web-inf下面生成
<value>/WEB-INF/classes/main/config/jdbc.properties</value>
</property>
</bean>
//這一塊就是拿到jdbc文件中的一些信息
<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
//這一塊顯而易見是 包所要掃描的基類
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource"/>
<property name="packagesToScan">
<list>
<value>main.java.com.yxr.model</value>
</list>
</property>
<property name="hibernateProperties">
//所使用的sql方言 以及設置是否顯示sql語句
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
//這裏是比較重要的地方 個人覺得 一共有四種取值 update 不改變表結構 validate 驗證表結構
//create 創建表存在則刪除再創建 這樣一旦表中有數據則後果不堪設想 create-drop tomcat啓動時創建 tomcate關閉時銷燬
//所以我在這裏使用update
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.format_sql">false</prop>
</props>
</property>
</bean>
<!-- 開啓HibernateTemplate,並且爲其注入SessionFactory
使用HibernateTemplate不太方便的就是要獲取session得通過getSessionFactory()方法獲取 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置Spring的事務處理 -->
<!-- 創建事務管理器-->
<bean id="txManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置AOP,Spring是通過AOP來進行事務管理的 -->
<aop:config>
<!-- 設置pointCut表示哪些方法要加入事務處理 -->
<!-- 以下的事務是聲明在DAO中,但是通常都會在Service來處理多個業務對象邏輯的關係,注入刪除,更新等,此時如果在執行了一個步驟之後拋出異常
就會導致數據不完整,所以事務不應該在DAO層處理,而應該在service,這也就是Spring所提供的一個非常方便的工具,聲明式事務 -->
<aop:pointcut id="allMethods"
expression="execution(* main.java.com.yxr.serviceImpl.*.*(..))" />
<!-- 通過advisor來確定具體要加入事務控制的方法 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="allMethods" />
</aop:config>
<!-- 配置哪些方法要加入事務控制 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- 讓所有的方法都加入事務管理,爲了提高效率,可以把一些查詢之類的方法設置爲只讀的事務 -->
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
<!-- 以下方法都是可能設計修改的方法,就無法設置爲只讀 -->
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="save*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
3.下面還有最重要的一個配置就是web.xml文件的配置 (display-name以及welcome-file-list 一個是項目顯示內容一個是加載的起始頁 不細講)
<!-- 創建Spring的監聽器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
//項目完全啓動之前打開的文件 加載xml文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/main/config/application.xml</param-value>
</context-param>
//加載srpingMVC-servlet文件
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/main/config/SpringMVC-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring中提供了 org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;
這個類來實現OpenSessionInViewer的操作 -->
<filter>
<filter-name>openSessionInViewerFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInViewerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
個人理解。之前的配置文件無論是怎樣最後都回加載到web.xml文件中來,直接的或者是間接的。這樣的話框架就已經搭建好了。啓動tomcat不報錯。算是初步
成功。但是如果你之前沒有搭建過。我敢保證一半的人會報各種不同錯誤。總而言之如果報錯你就細細的研究你的路徑是否配置正確。很多時候路徑配置不正確
框架就會報錯。當然具體情況具體對待。雖然現在不報錯。並不代表項目框架搭建就成功了。我將以一個簡答的登錄來測試一下。
首先在數據庫中創建一個數據庫。然後創建一張用於臨時測試的用戶表
-- 以後該項目所需要使用的數據庫
create database EasyPlay;
-- 使用該數據庫
use EasyPlay;
-- 創建一張用戶表
create table user_t(id int auto_increment, loginName char(8), password char(8), primary key(id));
在myEclipse中 創建用戶類 這裏大家也可以不在數據庫中間表。將上面提到的update換成create試試。你會發現。它通過註解自動生成了一張表。
親測 一樣的效果
user.java
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "loginName", length = 8)
private String loginName;
@Column(name = "password", length = 8)
private String password;
下面是get set 方法 就不一一展示了。
接下來 我再寫個controller文件驗證一下 控制層是否起作用。
按道理應該從controller一直到dao層一連串的實現登錄功能。但是 後期我會首先編寫baseDao文件簡化數據庫操作。所以此處只驗證controller層
。如果後期報出問題再修改配置。
下面給出 java文件 以及 jsp文件
@Controller
@RequestMapping("/user")
public class UserController {
@SuppressWarnings("unused")
@RequestMapping("/userLogin.do")
private void userLogin(@RequestParam(name = "loginName", defaultValue = "", required = true) String loginName,
@RequestParam(name = "password", defaultValue = "", required = true) String password){
String str;
if (StringUtils.isEmpty(loginName) || StringUtils.isEmpty(password)) {
str = "請將信息填寫完整!";
} else if (!loginName.equals("zs")) {
str = "所填寫的賬號不存在!";
} else if (!password.equals("111111")) {
str = "密碼填寫錯誤!";
} else {
str = "登錄成功!";
}
System.out.println(str);
}
}
jsp文件
<body>
<form method="post" action="user/userLogin.do">
賬號:<input type="text" name="loginName"/><br/><br/>
密碼:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
</body>
親測,運行成功。
下面是運行出來的截圖偶!
百度雲鏈接 http://pan.baidu.com/s/1pKCphXL
百度雲密碼 1d21
只做交流學習使用。將其放置在jquery文件夾下面。
可能你會發下報錯。不用緊張只需要百度一下如何跳過驗證就可以。反正我是這麼處理的,對於後期的使用暫時沒發現有什麼影響。如果有更好的方法
可以留言評論。找到錯誤文件 右鍵選擇myeclipse 然後選擇 exclude from validation 從驗證中排除。至於如何使用以後再介紹。