在上一節java web環境搭建中,咱們配置了開發java web項目最基本的環境,如今咱們將採用Spring MVC+Spring+Hibernate的架構搭建一個java web項目html
Spring MVC+Spring+Hibernate結構介紹以下:java
- Spring MVC
Spring MVC的職責是做爲web層框架,實現了咱們常見的MVC模式- Spring
Spring 做爲服務層,利用自身特性IOC、AOP,提供數據從DAO層到Web層的橋樑做用。- Hibernate
Hibernate做爲熟知的ORM框架,提供了從數據庫讀取數據映射到實體的功能,這裏咱們將Hibernate服務於DAO層
基於Spring MVC+Spring+Hibernate架構,面向接口編程,搭建項目,分爲Model、DAO、Service、ViewModel、Web層,具體介紹以下mysql
- Model
分爲數據庫實體和邏輯model兩塊,提供DAO和Service的數據實體和業務邏輯model- DAO
基於Hibernate,提供數據庫讀取,提供基本的增刪改查和數據訪問功能,供Service調用- Service
業務邏輯層,經過調用DAO的提供的數據訪問接口,整合業務邏輯,將數據提供給Web層,基於Spring的依賴注入和切面編程,提供面向接口的服務- ViewModel
頁面展示model,提供給web層- Web
提供一個用戶界面,調用Service提供的數據接口,實現用戶交互操做
基於Intellij IDEA開發工具,搭建Web項目,依賴了Hibernate,Spring ,Spring MVC等框架,具體搭建以下web
1.打開Intellij,File-->New Project,選擇Maven,下一步,輸入Group ID和ArtifactId,以下圖所示
2.輸入項目名稱com.ganji.demo,點擊finish,項目建立完成spring
1.添加model模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入GroupID和ArtifactId,以下圖所示,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.model
sql
2.添加實體
能夠經過安裝hibernate自動將數據庫表映射成實體類,數據庫
添加實體的辦法以下express
在resources下配置數據庫鏈接文件,gcrm.cfg.xml,具體內容以下編程
<?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地址:端口號/數據庫名</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,點擊添加,下面生成實體會用到。spring-mvc
- 在項目名稱上,右鍵添加Add Framework Support,左側勾選Hibernate,而後ok便可。
- 菜單欄View-->Tool Window-->Persistence,打開Persistence。
- 在Persistence model項目上右鍵,Generate Persistence Mapping-->By Database Schema,
- 配置生成數據庫實體類,具體配置以下
1.添加dao模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.dao
2.添加dao對model模塊的引用
在dao模塊上,右鍵Open Model Settings,點擊右側綠色+號,選擇Module Dependency,選擇model模塊便可
3.添加對Hibernate框架的引用
在dao模塊上,右鍵Add Framework Support,選擇hibernate,而後肯定便可。
1.添加service模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入相應GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.service
2.添加model、dao模塊的引用
同dao模塊添加model引用
1.添加viewmodel模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入相應GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.viewmodel
1.添加web模塊
打開Intellij,File-->New Maven,選擇Maven,勾選create from archetype,選擇maven -archetype-webapp,下一步,輸入相應GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.web
2.添加對service、viewmodel、model模塊的引用
同dao模塊添加model引用
三、添加對spring mvc framework的引用
在dao模塊上,右鍵Add Framework Support,選擇spring-->spring mvc,而後肯定便可。
四、配置web.xml文件
配置web.xml,添加servlet屬性,做爲web容器,進行url的分發操做
配置文件以下:
xml <?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>
五、配置dispatcher-servlet.xml
在webapp,web-inf目錄下,添加dispatcher-servlet.xml,上述web.xml中servlet指定的分發配置文件,配置以下內容
<?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 集成並運行Web項目
使用Intellij IDEA從零使用Spring MVC
Intellij IDEA建立Maven Web項目
IntelliJ IDEA 12建立Maven管理的Java Web項目(圖解)
SpringMVC學習系列(2) 之 經典的HelloWorld實現
SpringMVC入門教程
spring mvc ModelAndView的 Model 值 在jsp中不顯示