Java web 項目搭建
簡介
在上一節java web環境搭建中,我們配置了開發java web項目最基本的環境,現在我們將采用Spring MVC+Spring+Hibernate的架構搭建一個java web項目
Spring MVC+Spring+Hibernate結構介紹如下:
- 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層,具體介紹如下
- Model
分為數據庫實體和邏輯model兩塊,提供DAO和Service的數據實體和業務邏輯model- DAO
基於Hibernate,提供數據庫讀取,提供基本的增刪改查和數據訪問功能,供Service調用- Service
業務邏輯層,通過調用DAO的提供的數據訪問接口,整合業務邏輯,將數據提供給Web層,基於Spring的依賴注入和切面編程,提供面向接口的服務- ViewModel
頁面展現model,提供給web層- Web
提供一個用戶界面,調用Service提供的數據接口,實現用戶交互操作
項目搭建
基於Intellij IDEA開發工具,搭建Web項目,依賴了Hibernate,Spring ,Spring MVC等框架,具體搭建如下
-
創建整體項目
1.打開Intellij,File-->New Project,選擇Maven,下一步,輸入Group ID和ArtifactId,如下圖所示
2.輸入項目名稱com.ganji.demo,點擊finish,項目創建完成 -
添加Model模塊
1.添加model模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入GroupID和ArtifactId,如下圖所示,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.model
2.添加實體
可以通過安裝hibernate自動將數據庫表映射成實體類,添加實體的辦法如下
- 在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,點擊添加,下面生成實體會用到。
- 在項目名稱上,右鍵添加Add Framework Support,左側勾選Hibernate,然后ok即可。
- 菜單欄View-->Tool Window-->Persistence,打開Persistence。
- 在Persistence model項目上右鍵,Generate Persistence Mapping-->By Database Schema,
- 配置生成數據庫實體類,具體配置如下
-
添加DAO模塊
1.添加dao模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.dao2.添加dao對model模塊的引用
在dao模塊上,右鍵Open Model Settings,點擊右側綠色+號,選擇Module Dependency,選擇model模塊即可3.添加對Hibernate框架的引用
在dao模塊上,右鍵Add Framework Support,選擇hibernate,然后確定即可。 -
添加Service模塊
1.添加service模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入相應GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.service2.添加model、dao模塊的引用
同dao模塊添加model引用 -
添加ViewModel模塊
1.添加viewmodel模塊
打開Intellij,File-->New Maven,選擇Maven,下一步,輸入相應GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.viewmodel -
添加Web模塊
1.添加web模塊
打開Intellij,File-->New Maven,選擇Maven,勾選create from archetype,選擇maven -archetype-webapp,下一步,輸入相應GroupID和ArtifactId,注意Parent隸屬於com.ganji.demo,繼續model name填寫com.ganji.demo.web2.添加對service、viewmodel、model模塊的引用
同dao模塊添加model引用3、添加對spring mvc framework的引用
在dao模塊上,右鍵Add Framework Support,選擇spring-->spring mvc,然后確定即可。4、配置web.xml文件
配置web.xml,添加servlet屬性,作為web容器,進行url的分發操作
配置文件如下:<?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指定的分發配置文件,配置如下內容<?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中不顯示