Intellij IDEA Java web 项目搭建
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中不显示
Intellij IDEA Java web 项目搭建的更多相关文章
- Java web 项目搭建
Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个 ...
- intellij 创建java web项目(maven管理的SSH)
intellij 创建java web项目(maven管理的SSH) 环境intellij IDEA14.MAVEN.Spring.Struts2.Hibernate.Java Web.工程搭建. 1 ...
- 一个简单的Java Web项目搭建流程
今天试图在服务器上搭建一个web服务器,顺便回顾了java web项目的入门,使用Servlet处理HTTP请求,并记录日志等操作.当很久没有做过web项目时,有些东西还是很容易忘记的. Maven配 ...
- 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)
微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...
- Java Web项目搭建过程记录(struts2)
开发工具:eclipse 搭建环境:jdk1.7 tomcat 8.0 基础的java开发环境搭建过程不再赘述,下面从打开eclipse 之后的操作开始 第一步: 创建项目,File -> ...
- Java web项目搭建系列之一 Eclipse中新建Maven项目
前提条件: 已经安装好JDK 已经安装好Maven 已经安装好Eclipse 已经安装好Maven插件 在Eclipse中新建Maven项目 [File]→[New]→[Other...] [Mave ...
- Java web项目搭建系列之二 Jetty下运行项目
在项目pom.xml文件中添加Jetty运行配置 在pom.xml文件project节点下插入如下代码: <build> <plugins> <plugin> &l ...
- 微信公众号开发 包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证 2017.12.2
https://www.cnblogs.com/klmei/p/7060879.html 基础配置很全面
- Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目
原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring ...
随机推荐
- Unbunt vi 编辑器键盘按键不正确的一次经历与解决方案
在 VMWare 上安装了 Ubuntu Server 14.04.1(这个默认没有安装 vim ) 我在配置网卡的时候,编辑得很心碎.键盘输入和平常vi的响应完全不一样.又不能用 SecureCRT ...
- 实用的PHP功能详解(一)_php glob()用法
一.使用glob()查找文件 大部分PHP函数的函数名从字面上都可以理解其用途,但是当你看到 glob() 的时候,你也许并不知道这是用来做什么的,其实glob()和scandir() 一样,可以用来 ...
- ng-repeat && ng-options的故事
ng-repeat && ng-options的故事 1. <select class="input-small" ng-model="newH ...
- [转]protobuf-2.5.0.tar.gz的下载与安装
protobuf-2.5.0.tar.gz的下载与安装 原文地址:http://blog.csdn.net/tdmyl/article/details/31811317 版权声明:本文为博主原创文章, ...
- ubuntu安装jdk
首先,从http://java.sun.com或者http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archiv ...
- 配置Chrome Driver
书中使用Firefox driver出现莫名问题,大概是firefox的版本太新了,懒得降级处理,故学习配置Chome driver进行测试. 1.到http://chromedriver.stora ...
- Windows Desktop 调用 WinRT api
<Reference Include="Windows"> <HintPath>..\..\..\..\..\..\Program Files (x86)\ ...
- ASP.NET c# textbox 正则表达式 文本框只允许输入数字(验证控件RegularExpressionValidator )
<input type="text" name="test" onKeyUp="test1.value=(this.value=this.val ...
- Java编程中“为了性能”尽量要做到的一些地方
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...
- C语言通过timeval结构设置周期
在C语言中,我们经常需要设置一个时间周期.在这里,我们通过Timeval结构实现时间周期的设置.首先,我们介绍timeval,其定义如下(转载http://www.cnblogs.com/wainiw ...