在上一節(jié)java web環(huán)境搭建中,我們配置了開發(fā)java web項目最基本的環(huán)境,現(xiàn)在我們將采用SPRing MVC+Spring+Hibernate的架構(gòu)搭建一個java web項目
Spring MVC+Spring+Hibernate結(jié)構(gòu)介紹如下:
項目結(jié)構(gòu)
- Spring MVC Spring MVC的職責(zé)是作為web層框架,實現(xiàn)了我們常見的MVC模式
- Spring Spring 作為服務(wù)層,利用自身特性IOC、AOP,提供數(shù)據(jù)從DAO層到Web層的橋梁作用。
- Hibernate Hibernate作為熟知的ORM框架,提供了從數(shù)據(jù)庫讀取數(shù)據(jù)映射到實體的功能,這里我們將Hibernate服務(wù)于DAO層
基于Spring MVC+Spring+Hibernate架構(gòu),面向接口編程,搭建項目,分為Model、DAO、Service、ViewModel、Web層,具體介紹如下
項目搭建
- Model 分為數(shù)據(jù)庫實體和邏輯model兩塊,提供DAO和Service的數(shù)據(jù)實體和業(yè)務(wù)邏輯model
- DAO 基于Hibernate,提供數(shù)據(jù)庫讀取,提供基本的增刪改查和數(shù)據(jù)訪問功能,供Service調(diào)用
- Service 業(yè)務(wù)邏輯層,通過調(diào)用DAO的提供的數(shù)據(jù)訪問接口,整合業(yè)務(wù)邏輯,將數(shù)據(jù)提供給Web層,基于Spring的依賴注入和切面編程,提供面向接口的服務(wù)
- ViewModel 頁面展現(xiàn)model,提供給web層
- Web 提供一個用戶界面,調(diào)用Service提供的數(shù)據(jù)接口,實現(xiàn)用戶交互操作
基于Intellij IDEA開發(fā)工具,搭建Web項目,依賴了Hibernate,Spring ,Spring MVC等框架,具體搭建如下
1.打開Intellij,File-->New Project,選擇Maven,下一步,輸入Group ID和ArtifactId,如下圖所示2.輸入項目名稱com.ganji.demo,點擊finish,項目創(chuàng)建完成
1.添加model模塊打開Intellij,File-->New Maven,選擇Maven,下一步,輸入GroupID和ArtifactId,如下圖所示,注意Parent隸屬于com.ganji.demo,繼續(xù)model name填寫com.ganji.demo.model
2.添加實體可以通過安裝hibernate自動將數(shù)據(jù)庫表映射成實體類,
添加實體的辦法如下
- 在resources下配置數(shù)據(jù)庫連接文件,gcrm.cfg.xml,具體內(nèi)容如下
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <property name="connection.url">jdbc:MySQL://ip地址:端口號/數(shù)據(jù)庫名</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">username</property> <property name="connection.passWord">pwd</property> <property name="current_session_context_class">thread</property> </session-factory></hibernate-configuration>
添加后,右上角會提示Add to hibernate facet configuration,點擊添加,下面生成實體會用到。
- 在項目名稱上,右鍵添加Add Framework Support,左側(cè)勾選Hibernate,然后ok即可。
- 菜單欄View-->Tool Window-->Persistence,打開Persistence。
- 在Persistence model項目上右鍵,Generate Persistence Mapping-->By Database Schema,
- 配置生成數(shù)據(jù)庫實體類,具體配置如下
1.添加dao模塊打開Intellij,File-->New Maven,選擇Maven,下一步,輸入GroupID和ArtifactId,注意Parent隸屬于com.ganji.demo,繼續(xù)model name填寫com.ganji.demo.dao
2.添加dao對model模塊的引用在dao模塊上,右鍵Open Model Settings,點擊右側(cè)綠色+號,選擇Module Dependency,選擇model模塊即可
3.添加對Hibernate框架的引用在dao模塊上,右鍵Add Framework Support,選擇hibernate,然后確定即可。
1.添加service模塊打開Intellij,File-->New Maven,選擇Maven,下一步,輸入相應(yīng)GroupID和ArtifactId,注意Parent隸屬于com.ganji.demo,繼續(xù)model name填寫com.ganji.demo.service
2.添加model、dao模塊的引用同dao模塊添加model引用
1.添加viewmodel模塊打開Intellij,File-->New Maven,選擇Maven,下一步,輸入相應(yīng)GroupID和ArtifactId,注意Parent隸屬于com.ganji.demo,繼續(xù)model name填寫com.ganji.demo.viewmodel
1.添加web模塊打開Intellij,File-->New Maven,選擇Maven,勾選create from archetype,選擇maven -archetype-webapp,下一步,輸入相應(yīng)GroupID和ArtifactId,注意Parent隸屬于com.ganji.demo,繼續(xù)model name填寫com.ganji.demo.web
2.添加對service、viewmodel、model模塊的引用同dao模塊添加model引用
3、添加對spring mvc framework的引用在dao模塊上,右鍵Add Framework Support,選擇spring-->spring mvc,然后確定即可。
4、配置web.xml文件配置web.xml,添加servlet屬性,作為web容器,進(jìn)行url的分發(fā)操作配置文件如下:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web application</display-name> <!-- Handles all requests into the application --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocatin</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
5、配置dispatcher-servlet.xml在webapp,web-inf目錄下,添加dispatcher-servlet.xml,上述web.xml中servlet指定的分發(fā)配置文件,配置如下內(nèi)容
<?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:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" > <!--開啟注解映射支持--> <mvc:annotation-driven/> <!-- 開啟controller注解支持 --> <!-- use-default-filters="false" 只掃描指定的注解 --> <context:component-scan base-package="com.ganji.demo.web.controller" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan><!-- 開啟視圖解析支持 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <property name="prefix" value="/WEB-INF/view/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--開啟依賴注入--> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> <bean id="demoUserService" class="com.ganji.demo.service.user.DemoUserServiceImpl"></bean></beans>
IntelliJ IDEA 12 與 Tomcat 集成并運(yùn)行Web項目使用Intellij IDEA從零使用Spring MVCIntellij IDEA創(chuàng)建Maven Web項目IntelliJ IDEA 12創(chuàng)建Maven管理的Java Web項目(圖解)SpringMVC學(xué)習(xí)系列(2) 之 經(jīng)典的HelloWorld實現(xiàn)SpringMVC入門教程spring mvc ModelAndView的 Model 值 在jsp中不顯示
新聞熱點
疑難解答