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.打开IntellijFile-->New Project,选择Maven,下一步,输入Group IDArtifactId,如下图所示

    2.输入项目名称com.ganji.demo,点击finish,项目创建完成

  • 添加Model模块

    1.添加model模块
    打开IntellijFile-->New Maven,选择Maven,下一步,输入GroupIDArtifactId,如下图所示,注意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模块
    打开IntellijFile-->New Maven,选择Maven,下一步,输入GroupIDArtifactId,注意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,然后确定即可。

  • 添加Service模块

    1.添加service模块
    打开IntellijFile-->New Maven,选择Maven,下一步,输入相应GroupIDArtifactId,注意Parent隶属于com.ganji.demo,继续model name填写com.ganji.demo.service

    2.添加model、dao模块的引用
    同dao模块添加model引用

  • 添加ViewModel模块

    1.添加viewmodel模块
    打开IntellijFile-->New Maven,选择Maven,下一步,输入相应GroupIDArtifactId,注意Parent隶属于com.ganji.demo,继续model name填写com.ganji.demo.viewmodel

  • 添加Web模块

    1.添加web模块
    打开IntellijFile-->New Maven,选择Maven,勾选create from archetype,选择maven -archetype-webapp,下一步,输入相应GroupIDArtifactId,注意Parent隶属于com.ganji.demo,继续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容器,进行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
    webappweb-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中不显示

Java web 项目搭建的更多相关文章

  1. Intellij IDEA Java web 项目搭建

    Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个 ...

  2. 一个简单的Java Web项目搭建流程

    今天试图在服务器上搭建一个web服务器,顺便回顾了java web项目的入门,使用Servlet处理HTTP请求,并记录日志等操作.当很久没有做过web项目时,有些东西还是很容易忘记的. Maven配 ...

  3. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

  4. Java Web项目搭建过程记录(struts2)

    开发工具:eclipse 搭建环境:jdk1.7   tomcat 8.0 基础的java开发环境搭建过程不再赘述,下面从打开eclipse 之后的操作开始 第一步: 创建项目,File -> ...

  5. Java web项目搭建系列之一 Eclipse中新建Maven项目

    前提条件: 已经安装好JDK 已经安装好Maven 已经安装好Eclipse 已经安装好Maven插件 在Eclipse中新建Maven项目 [File]→[New]→[Other...] [Mave ...

  6. Java web项目搭建系列之二 Jetty下运行项目

    在项目pom.xml文件中添加Jetty运行配置 在pom.xml文件project节点下插入如下代码: <build> <plugins> <plugin> &l ...

  7. 微信公众号开发 包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证 2017.12.2

    https://www.cnblogs.com/klmei/p/7060879.html  基础配置很全面

  8. Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目

    原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring ...

  9. maven3常用命令、java项目搭建、web项目搭建详细图解

    http://blog.csdn.net/edward0830ly/article/details/8748986 ------------------------------maven3常用命令-- ...

随机推荐

  1. javascript笔记——正则表达式学习笔记

    indexof 查找 substring 获取字符串 [) charAt 获取某个字符 split 分割字符串,获得数组 \s:空格 \S:非空格 \d:数字 \D:非数字 \w:字符 \W:非字符 ...

  2. 关于IE8以上 不引人css 症状

    不知道各位有没有体验过 这样的状况  在同一个文件夹中 <!DOCTYPE html> <html> <head> <meta charset="u ...

  3. linux file命令小记

    在linux中,所有东西都是文件:而且他并没有后缀名这一概念.Linux的扩展名没有太大的意义, file.tar.gz file.tgz file.tar.bz2 file.rar file.gz ...

  4. 关键字 const

    如果关键字出现在星号左边,表示被指物是常量: 如果出现在星号右边,表示指针本身是常量: 如果出现在星号两边,表示被指物和指针都是常量. void f1(const Widget* pw); //f1和 ...

  5. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)A蔡老板的会议

    题目描述 图灵杯个人赛就要开始了,蔡老板召集俱乐部各部门的部长开会.综合楼有N (1<=N<=1000)间办公室,编号1~N每个办公室有一个部长在工(mo)作(yu),其中X号是蔡老板的办 ...

  6. CLI结果输出

    例子:FTP::11.245.253.20_CIPS_dev_bak\/opt/IBM/db2/V9.7/samples/ 要不要修改整体结构,先看看细节 CLI结果输出: 1. 逐条的获取--确定产 ...

  7. Paxos算法

    Paxos算法是分布式系统中常用的一个保持系统一致性的算法,由美国计算机科学家Leslie B. Lamport提出.原文链接. 今天特意学习了一下Paxos的原理,为防忘记,记录下来.(看了的东西没 ...

  8. Jquery-zTree的基本用法

    [简介] zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 ...

  9. 修正 phpcmsv9 VIP过期日期为1970

    打开 phpcms/modules/member/member.php 找到 $form_overdudate = form::date('info[overduedate]', date('Y-m- ...

  10. Linux学习1

    Linux中一切皆文件,且不依靠扩展名区分文件,学习Linux必须要熟悉在字符界面进行文件的管理. 首先是Linux的查询命令. (1)ls -a是显示当前目录所有文件,包含隐藏文件,如图中文件名前加 ...