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

时间:2022-08-31 07:36:45

原文: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.打开IntellijFile-->New Project,选择Maven,下一步,输入Group IDArtifactId,如下图所示
    Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目
    2.输入项目名称com.ganji.demo,点击finish,项目创建完成

  • 添加Model模块

    1.添加model模块
    打开IntellijFile-->New Maven,选择Maven,下一步,输入GroupIDArtifactId,如下图所示,注意Parent隶属于com.ganji.demo,继续model name填写com.ganji.demo.model
    Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目

    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即可(最新版Intellij IDEA则为项目名称上,添加Module模块中 选择 Spring Hibernate)。
    • 菜单栏View-->Tool Window-->Persistence,打开Persistence。
    • 在Persistence model项目上右键,Generate Persistence Mapping-->By Database Schema,
    • 配置生成数据库实体类,具体配置如下
      Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目
  • 添加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中不显示

Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目的更多相关文章

  1. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  2. IntelliJ IDEA 14&period;x 与 Tomcat 集成,创建并运行Java Web项目

    转自:http://www.php-note.com/article/detail/854 IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目 作者:php- ...

  3. Spring框架——事务管理方式搭建一个小的项目

    学习Spring框架,通过事务管理的方式搭建一个小的项目,该项目可以查询对数据库中的图书库存数量进行修改. 首先,使用MVC分层的设计模式思想搭建项目目录结构. 此部分代码源码之中都有相关注释,所以尽 ...

  4. 在cmd命令行使用Maven Archetype插件 generate命令创建简单的java web项目

    前提: 1.下载apache-maven:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache ...

  5. maven的下载,安装配置以及build一个java web项目

    一.下载 下载地址:http://maven.apache.org/download.cgi 二.安装 下载完成后,解压,进入到bin目录: 三.环境变量配置 复制bin目录下的文件的路径(如:xxx ...

  6. IntelliJ IDEA下maven Spring MVC配置

    1. 导入工程:或者新建Spring web工程,可以参考博客中的Eclipse Spring MVC的方式: 2.配置Tomcat服务器,有两种方式:一是配置maven插件,而是配置本地Tomcat ...

  7. Maven&plus;Spring&plus;MVC结构中,jetty&sol;tomcat是如何启动项目的&lbrack;转&rsqb;

    针对maven配置的Spring+MVC项目,我们用Maven自带的jetty和tomcat插件进行调试,这很方便.但是调试时,这些插件所启动的web服务器,是如何来将我们的工程作为一个web项目启动 ...

  8. Spring mvc Data Redis—Pub&sol;Sub(附Web项目源码)

    一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE ...

  9. Intellij IDEA Java web 项目搭建

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

随机推荐

  1. 公司培训 oracle( 第一天)

    以前在学校学习Oracle的时候就对rowid 和rownum 这两个伪列有很大的疑惑,今天公司对16届新员工进行公司内部技术培训,课堂上的讲解,又让我想起来了曾经的疑惑点, 我想不能在让这个疑惑继续 ...

  2. IOS7&period;0 Xcode5 AutoLayout 备忘录

    Xcode5 xib设置autolayout方式: 列表1: (选择两个view时可设置) 左边对齐, 右边对齐, 顶部对齐, 底部对齐, x轴中心对齐, y轴中心对齐, 文本底标线对齐, (单选择一 ...

  3. 第九篇 SQL Server代理了解作业和安全

    本篇文章是SQL Server代理系列的第九篇,详细内容请参考原文 在这一系列的上一篇,学习了如何在SQL Server代理作业步骤启动外部程序.你可以使用过时的ActiveX系统,运行批处理命令脚本 ...

  4. Centos6 编译安装局域网NTP服务器

    一.条件及环境: 1.CentOS:我用的是最新的CentOS 6.5 64位版,此教程应该也适用于RedHat 6及CentOS 6系列所有系统: 2.编译所需环境: 1 # yum -y inst ...

  5. Chapter 9 原型模式

    原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 简单的说就是clone一个对象实例.使得clone出来的copy和原有的对象一模一样. 插一个简单使用clone的例子,如果 ...

  6. Python Tornado篇

    Tornado既是一个web server,也是web framework.而它作为web server 采用的是asynchronous IO的网络模型,这是一种很高效的模型. Tornado 和现 ...

  7. python 模块 wmi 远程连接 windows 获取配置信息

    测试工具应用: https://ask.csdn.net/questions/247013 wmi连接不上报错问题集 https://blog.csdn.net/xcntime/article/det ...

  8. 通过反射来读取XML格式的ControlTemplate

    在之前的一个WPF项目中,由于设置控件模板在前台xaml中读取失败,由此想到了通过反射的形式来读取该模板,首先将该模板写入一个xml文件中,然后再读取该xml文件,在这里首先介绍一下:资源和嵌入式资源 ...

  9. 028 Partitioner:数据分区器

    Partitioner:数据分区器,决定数据到下一个RDD的时候在那一个分区 HashPartitioner:根据key的hashCode值来实现 RangePartitioner: 根据key所属范 ...

  10. &lbrack;django&rsqb;Django model中数据批量导入bulk&lowbar;create&lpar;&rpar;

    参考: https://www.cnblogs.com/ccorz/p/Django-model-zhong-shu-ju-pi-liang-dao-rubulkcreat.html import o ...