从零开始学java 框架_从零开始学 Java - 搭建 Spring MVC 框架

如果创建一个 Spring 项目

Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话,那可真令人忧伤。

1.在 MyEclipse 创建项目后,可以以选择的方式去配置一个 Spring 项目,这里不在讨论。因为我只用 Eclipse。

2.手动搭建。就是动手。

新建一个 Java Web 项目

1.打开 Eclipse ,在Project Explorer选项卡下面点击右键,选择Web - Dynamic Web Prodect(这一步应该都知道阿!!!)。

3935284619.png

2.点击Next。起一个你认为还不错的项目名,注意:命名很重要,把每一次命名都当做给自己孩子起名字一样庄严神圣。

477824978.png

3.没有了,完成。

3246737662.png

搞到 Spring 框架的 jar 包

无论你用坑蒙拐骗,还是死皮赖脸,只要你搞到 Spring 框架的 jar 包就行。我这里给你个地址,你可以体面的去下载就行了。地址:http://projects.spring.io/spring-framework/

找到适合自己的版本,下载下来保存到合适的位置就可以了,就这么简单。解压后,应该是这样的:

493357410.png

你看包的命名,你可能就大致明白了这个 jar 包是干嘛的了,接下来就是引入你需要的了。

然后,你要你需要的 jar 包,复制到项目的/WebContent/WEB-INF/lib下,为什么要这么做,下面会说的。

导入 jar 包

记得当年一个学 Java 的朋友抱怨说: Java 每天都在导包,不如 .Net 爽。我现在并不这么认为。

在项目名上,点击右键,Build Path - Configure Bulid Path... - Libraries - Add JARs...,在弹出的框里边找到项目的/WebContent/WEB-INF/lib,这样就看到刚刚你复制过来的 jar 包了。

3803729409.png

配置配置配置

搭建 Spring 框架最重要的步骤应该就是配置了。官网对框架的解释说明如下:

Spring MVC 框架是围绕一个 DispatcherServlet 来设计的,这个 Servlet 会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。处理器是你的应用中注解了 @Controller 和 @RequestMapping 的类和方法,Spring 为处理器方法提供了极其多样灵活的配置。

所以,首先我们应该在/WebContent/WEB-INF/下新建web.xml文件,接下来在这个文件中配置 DispatcherServlet。

springMVC

org.springframework.web.servlet.DispatcherServlet

1

springMVC

/

contextConfigLocation

/WEB-INF/applicationContext.xml

还可以配置字符编码,默认启动页面什么的,这里不在配置,具体见示例项目:https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/web.xml,因为这里是把 DispatcherServlet 命名为springMVC,并且让它在 Web 项目一启动就加载。接下来我们需要在/WebContent/WEB-INF/目录下创建一个springMVC-servlet.xml的Spring配置文件。Spring官方文档上推荐的默认的文件名是[servlet-name]-servlet.xml文件,这里 servlet-name 叫 springMVC ,因此,我新建了一个springMVC-servlet.xml。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.2.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util-4.2.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.2.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

具体详见:https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/springMVC-servlet.xml

我们在web.xml文件中定义的contextConfigLocation,指定要装入的 Spring 配置文件,一般文件都命名为applicationContext.xml,这个文件中我们可以进行扫描类包、读取配置文件、数据源管理、AOP配置、缓存以及消息队列等配置,所以,接下来就新建applicationContext.xml文件。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

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.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd">

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

classpath:global.properties

classpath:jdbc.properties

init-method="init" destroy-method="close">

${master.jdbc.driverClassName}

${master.jdbc.url}

${master.jdbc.username}

${master.jdbc.password}

...

init-method="init" destroy-method="close">

...

...

...

到这里,其实我们已经配置完成了,接下来就是新建我们需要的Package包,来实现不同包来完成不同的事儿的。

新增 Package 包

分层的意义及优缺点我这里不在唠叨,按照正常的分层架构一般都会分为 View 层、Action 层、Service 层、Dao 层,这里我们也是这样做的,下面就开始新建包,.Net 下面是叫类库。

4065750617.png

按照这样的方式新建就可以了,具体的架构如下图:

402552663.png

到这里,搭建 Spring MVC 框架的工作算是完成了。接下来就是配置具体的数据源、缓存、AOP、JMS 这些东西了。祝你好运!

原文链接:https://www.cnblogs.com/mafly/p/5839863.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 系统类型_Java获取操作系统类型

Java获取操作系统完整版系统枚举类:public enum EPlatform {Any("any"),Linux("Linux"),Mac_OS("Mac OS"),Mac_OS_X("Mac OS X"),Windows("Windows"),OS2("OS/2"),Solaris("Solaris"),SunOS…

azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.使用 Azure 门户创建和管理 Azure Database for MySQL VNet 服务终结点和 VNet 规则Create and manage Azure D…

java jmap jc_利用jmap命令查看JVM内存使用详情

介绍打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。它的用途是为了展示java进程的内存映射信息,或者堆内存详情。可以输出所有内存中对象的工具,甚至可以将VM 中的heap&#xf…

雅居乐万豪酒店java_“万豪,我心所属之地” | 上海雅居乐万豪酒店Terence Sun的实习故事...

​我叫孙庭骏,来自台北,目前就读瑞士恺撒里兹酒店管理学院,在来上海之前曾在瑞士苏黎世万豪酒店的餐饮部实习过两次,共一年的时间,所以万豪对我来说并不陌生。万豪一直深深吸引我的莫过于它的核心价值以及非凡待客之道…

java quartz spring_JavaLib-quartz | 基于Spring Boot Quartz开发的定时任务

基于Spring Boot Quartz开发的JavaLib-quartz,目的是帮你快速构建定时任务系统,你可以专心编写你的业务逻辑,而不必关注定时任务具体是如何实现的,他的性能如何,有没有异常以及异常处理,监控等等问题。这些…

java static 加载顺序_一个例子搞清楚Java类加载顺序

当我们new一个GirlFriend时,我们都做了什么?一个例子搞懂Java程序运行顺序public class Girl {Person person new Person("Girl");static{System.out.println("Girl static");}static Person staticPerson new Person("GirlS…

java 轻量数据库_DBTree是一个springboot2 + vue-element-template实现的轻量数据库表结构查看及管理工具...

DBTree简介DBTree是一个WEB版的轻量数据库表结构查看及管理工具,相比phpMyAdmin, DBTree只专注于方便开发查看表结构信息和 注释维护。通过树形展示库表结构,可以对表进行自定义归类,在线更新注释。你还可以使用它来部分替代mybatis generato…

java通用异常_Java常用异常整理

填坑,整理下Java的常用异常。正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系、常用异常类、常用异常类…

java 移动页面中的图片上传_移动端上传图片(ajax跨域请求)

第一次写项目开发经验,望担待。除了前端以外的事就不叨叨了,下面开始弄干活(两个页面首页、列表页)。项目开发简述项目需求:上传图片并展示。项目地址:项目的链接地址开发工具:sublime后台:java开发语言&am…

php session 反序列化,PHP SESSION反序列化本地样例分析

PHP SESSION反序列化本地样例分析0X00漏洞原因主要原因是: ini_set(‘session.serialize_handler’, ‘php_serialize’);ini_set(‘session.serialize_handler’, ‘php’);两者处理session的方式不同。0X01漏洞分析如果在PHP在反序列化存储的$_SESSION数据时使用的…

php 标题去重复思想,WordPress网站发布文章时如何防止发布重复标题的文章?

事实上,所有插件后端代码都等同于将代码片段添加到functions.php中,functions.php代码片段可以生成插件,然后插件可以自然地集成到functions.php中。插件主要易于管理,但也增加了静态资源请求的数量。如果您知道如何处理这些请求&…

无法连接iphone软件更新服务器_苹果发布了iphone、ipad和mac的新软件更新

苹果已经发布了三种操作系统的软件更新:用于iphone和ipod的iOS、ipad的iPadOS和Macs的macOS。这些更新很小,主要集中在bug修复上,而不是添加新功能。这些更新标记为iOS 13.6.1、iPadOS 13.6.1和macOS 10.15.6补充更新。通常,iOS或…

win10升级助手_关闭win10系统更新

为什么要拒绝更新系统呢???1.系统更新占用太多时间2.不合时宜的提醒更新严重影响了工作3.对绝大多数人完全没有必要更新系统微软强奸式的要求更新不合清理。同学们的电脑系统大多数是win10家庭版,可以采用下面方案关闭自动更新&am…

matlab 生成信号文件,生成的代码如何存储内部信号、状态和参数数据

浏览模型示例打开模型示例 rtwdemo_roll。open_system(rtwdemo_roll)该模型包含不连接到根级别 Inport 或 Outport 模块的内部信号。某些信号具有名称,例如 phiCmd 信号。该模型还包含一些维护状态数据的模块。例如,在 BasicRollMode 子系统中&#xff0…

苹果平板怎么卸载软件_怎么很好的卸载流氓软件!

我相信在生活当中,很多人都会在不知情或者不注意的情况下,被迫下载很多自己不想要的软件,而且删除之后总是出现,挥之不去。接下来我将会给大家分享几个下载此类软件的方法:一、通过控制面板卸载点击小图标,…

python 循环语句结果存储_python条件语句和循环语句

一、条件语句Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。 Python 程序语言指定任何非 0 和非空(null)值为 True,0 或者 null为 False。…

使用c++查看linux服务器某个进程正在使用的内存_精选20个常用的Linux命令

今天总结几个非常常用的Linux命令,其中有几个在面试中很可能问相关命令的原理,比如后台运行命令。希望对大家有所帮助,最好自己去尝试在Linux操作系统中实践一下。1 查看目录以及权限在windows中,使用dir查看当前目录中文件。在Li…

台式电脑可以连wifi吗_不使用WIFI,手机也可以通过电脑的网络上网

让手机通过电脑上网的方式有很多种,最常见的就是 WIFI 了,而且简单直接。但是有时候台式机没有 WIFI ,或者电脑的 WIFI 设备已经连接到其他的网络了,这时候手机就不能通过电脑的 WIFI 连接到网络。那么还没有有办法连接到网络呢&a…

pgsql 前10条_未来3年,广州83条城中村、285个旧街区将迎来改造

文、图/羊城晚报全媒体记者 赵燕华 通讯员 穗建未来3年,广州83条城中村将实施改造,285个旧街区将迎来改造,推进176个旧厂房改造,将整治1.24亿平方米违建……9月25日,在广州市深化城市更新工作推进高质量发展政策培训暨…

c++能干什么_「CG原画插画教程」学画画到底能干什么?

原标题:「CG原画插画教程」学画画到底能干什么?艺学绘小编收集整理了学画画到底能干什么?学画画到底能干什么?相信很多学画画的朋友们都被问过这个问题,那些对学画画有偏见的人,总觉得我们在“不务正业”。…