Spring Boot:快速启动MVC

Spring-Boot-MVC-Gradle-300x300

我打算一年多以前写一篇关于Spring Boot的文章。 最后,我有时间和灵感。 因此,准备10到15分钟的高质量Spring教程。 我将用Gradle和嵌入式Tomcat演示Spring Boot的基础知识。 我使用Intellij IDEA而不是Eclipse,但是对于那些习惯Eclipse的人来说,这应该不是问题。

Spring Boot简介

我的目标是什么? 我想开发与我以前有关Spring和Java配置的教程之一非常相似的东西。 比较两种不同的Spring开发方法是一个很好的练习。
毫无疑问,你们大多数人都知道Spring Boot的主要目标是什么。 对于其他读者,我想说Spring Boot使开发人员更快乐,因为它可以进行配置,而开发人员可以专注于代码生产。 有关更多详细信息,请阅读官方参考 。

Gradle构建文件

Spring-Boot-Project-256x300

为了管理依赖关系和项目的构建,我使用了Gradle。 这是build.gradle文件的外观:

buildscript {repositories {//Required reposmavenCentral()maven { url "http://repo.spring.io/snapshot" }maven { url "http://repo.spring.io/milestone" }}dependencies {//Required dependency for spring-boot pluginclasspath 'org.springframework.boot:spring-boot-gradle-plugin:1.1.2.BUILD-SNAPSHOT'}
}apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'spring-boot'war {baseName = 'companies'version =  '0.1'
}repositories {mavenCentral()maven { url "http://repo.spring.io/snapshot" }maven { url "http://repo.spring.io/milestone" }
}dependencies {compile 'org.springframework.boot:spring-boot-starter-web'//Required dependency for JSPprovidedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper'
}

如果您不熟悉Gradle,建议您在其他地方(例如,官方网站)上阅读它。 这是非常好的实用工具。 它可以完成Maven的所有工作,但是没有XML!

Spring Boot初始化

现在我们可以在Java代码级别上设置Spring Boot。

package com.companies;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan
@EnableAutoConfiguration
public class CompanyApplication {public static void main(String[] args) {SpringApplication.run(CompanyApplication.class, args);}}

就是这样,现在您可以开始开发业务逻辑了。 只是在开玩笑,我们需要添加一些与视图解析有关的额外配置。

package com.companies.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter{@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}@Beanpublic InternalResourceViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("WEB-INF/pages/");resolver.setSuffix(".jsp");return resolver;}}

创建上面发布的类之后,您可以继续进行控制器开发。

控制器和视图

package com.companies.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;@Controller
public class HelloWorldController {@RequestMapping(value = "/hello", method = RequestMethod.GET)public ModelAndView hello() {ModelAndView mav = new ModelAndView();mav.setViewName("hello");String str = "Hello World!";mav.addObject("message", str);return mav;}}

以及控制器的相应视图hello.jsp

<html>
<head><title>Hello world page</title>
</head>
<body><h1>${message}</h1>
</body>
</html>

我希望不必重复所有这些步骤。

运行Spring Boot应用程序

在本教程中,我们要做的最后一件事是启动应用程序。 因此,我使用Gradle,并在我们的build.gradle文件中指定了应用程序需要打包为WAR文件–我需要运行build和war文件。
这是在IDEA中的样子:

弹簧启动运行300x134

结果您可以在这里看到: localhost:8080 / hello

翻译自: https://www.javacodegeeks.com/2014/06/spring-boot-fast-mvc-start.html

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

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

相关文章

opengl库区分:glut、freeglut、glfw、glew、gl3w、glad

//oepngl库 opengl原生库 gl* 随opengl一起发布 opengl实用库 glu* 随opengl一起发布 opengl实用工具库glut glut* 需要下载配置安装(太老了&#xff01;) opengl实用工具库开源版本freeglut glut* 需要下载配置安装(完全兼容glut&#xff0c;算是glut的代替品&#xff0c;但是…

css实现左(右)侧固定宽度,右(左)侧宽度自适应 ---清除浮动

老话长谈&#xff0c;css的不固定适应布局 不管是面试还是在平时的工作中&#xff0c;这样的布局形式一直都在用着&#xff0c;很常见&#xff0c;所以今天我就拿出来在唠叨一下&#xff0c; 既是给自己一个备忘存储&#xff0c;也是一个学习巩固的参考&#xff0c;知道大家都…

Func 与Action

Func< > 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法&#xff0c; Action<T> 委托封装一个方法&#xff0c;该方法只有一个参数并且不返回值。 其实都是一个委托 Main() { Func<int, string > fun p.Name;//int是委托要执行的…

HDU1512 (左偏树)

2.1.2 可并堆的定义 可并堆(Mergeable Heap)也是一种抽象数据类型&#xff0c;它除了支持优先队列的三个基本操作(Insert, Minimum, Delete-Min)&#xff0c;还支持一个额外的操作——合并操作&#xff1a; H ← Merge(H1,H2) Merge( ) 构造并返回一个包含H1和H2所有元素的新堆…

布里斯托大学计算机科学专业排名,2021年布里斯托大学世界及专业排名 多个领域位居全英前十!...

它既是红砖大学的成员&#xff0c;也是罗素大学集团成员&#xff0c;在这所学校里共培养出了13位诺贝尔奖得主&#xff0c;这所学校就是布里斯托大学&#xff0c;该校的83%的研究成果都达到了世界领先水平&#xff0c;因此&#xff0c;越来越多的学生去布里斯托大学留学&#x…

Spring启动时的Spring社交示例,或者我如何不再担心和喜欢自动配置

对于Spring Boot 1.1.0.RC1&#xff0c;添加了自动配置和Spring Social的启动程序pom&#xff0c;这意味着我不必为pom添加一百个依赖关系&#xff0c;并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。 我将实现一个两页的Web应用程序。 一个将显示给定用户的T…

Djang之cookie和session

一 会话跟踪 我们需要先了解一下什么是会话&#xff01;可以把会话理解为客户端与服务器之间的一次会晤&#xff0c;在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话&#xff0c;你就是客户端&#xff0c;而10086服务人员就是服务器了。从双方接通电话那一刻起&a…

html 安卓解锁,【华为手机解账户锁教程】手撕篇3 完美解锁华为EMUI8.0,8.1,8.2系统...

[free]华为手机在8.0系统以后都无法用工具解除账户锁。但要想解除账户锁&#xff0c;并不是没有办法&#xff0c;下面我们演示手工解账户锁的一种方法&#xff0c;本方案 针对所有华为机型的EMUI8.0 8.1 8.2有效&#xff0c;其他系统自测&#xff0c;需要华为手机解锁的可以联系…

java.lang.Error: Unresolved compilation problems

一般有两种常见的情况&#xff1a; 1、当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时&#xff0c;这个 jar 内所有的 java package 中的类必须来自这个 jar 包&#xff0c;这是 JVM 的安全措施&#xff0c;配合数字签名就能防止篡改&#xff0c;微软就把它的 SQ…

正则表达式实例

1、匹配非负整数&#xff08;正整数 0&#xff09; <div class"qfverify"><input type"text" onkeyup"inputIntReg(this)" placeholder"请输入充值预算"><p class"qfverify__font">请输入有效数字</p…

ASP.NET技巧(收集)

1、有没有办法让JavaScript的注释在客户端不可见呢&#xff1f; 答案很简单&#xff0c;就是&#xff1a;JavaScript注释 服务器端注释&#xff01; 行注释写法&#xff1a; //<%-- 这里写行注释 --%> 块注释写法&#xff1a; /*<%-- 这里写注释语句块&a…

Java文件I / O基础

Java 7引入了java.nio.file包&#xff0c;以提供对文件I / O的全面支持。 除了许多其他功能之外&#xff0c;该软件包还包括Files类&#xff08;如果您已经使用此类&#xff0c;则可以在这里停止阅读&#xff09;。 文件包含许多静态方法&#xff0c;可用于在处理文件时完成常…

2018-05-14 代码考古-Python3官方教程字典例程

知乎原链 Data Structures中的第一个例程:>>> tel {jack: 4098, sape: 4139} >>> tel[guido] 4127 >>> tel {sape: 4139, guido: 4127, jack: 4098} >>> tel[jack] 4098 >>> del tel[sape] >>> tel[irv] 4127 >&g…

中大计算机考研复试刷人太狠,中山大学考研复试被刷原因大盘点!

不知不觉已经进入4月了&#xff0c;距离分数线公布的时间也越来越近了。复试的重要程度一点也不亚于初试的。复试考察内容多&#xff0c;考察形式多样&#xff0c;往年也有高分落榜&#xff0c;低分逆袭的情况&#xff0c;不管你是何种情况&#xff0c;都要做好复试准备哦&…

Windows堆栈区别[转]

堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥! 堆和栈的区别一、预备知识—程序的内存分配一个由c/C编译的程序占用的内存分为以下几个部分1、栈区&#xff08;stack&#xff09;— 由编译器自动分配释放 &#xff0c;存放函数的参数值&…

WebView内存泄露的解决方案

一、简介&#xff1a; 做Android开发的相信都对webview不会陌生&#xff0c;而且也对系统自带的webview本身存在的问题也是怨念很久了&#xff0c;一方面是本身对js的支持不是很好另外一方面就是经常被人诟病的内存泄露了&#xff0c;网上也有很多解析和方案但至少在我的项目中…

Tomcat启用HTTPS协议配置过程

Article1较为简洁&#xff0c;Article2较为详细&#xff0c;测试可行。 Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试…

常见的Java神话

这些问题在任何面试中都可能太过提出而无法提出&#xff0c;因为它们可能会使候选人推迟。 不管怎样&#xff0c;他们可能会在您自己的时间练习。 误解1&#xff09;System.exit&#xff08;0&#xff09;阻止最终被调用 为什么这样的代码 System.setSecurityManager(new Sec…

萧山职称计算机考试培训,浙江萧山2017年职称计算机考试时间安排

【摘要】环球网校分享的浙江萧山2017年职称计算机考试时间安排届时网校会及时更新职称计算机考试报名入口&#xff0c;希望对大家报考职称计算机考试有帮助&#xff0c;更多资料敬请关注环球职称计算机考试频道&#xff0c;网校会及时更新考【摘要】环球网校分享的“浙江萧山20…

springboot配置idea 热部署

背景&#xff1a; 在开发中&#xff0c;当我们修改代码之后&#xff0c;每次都要重新启动&#xff0c;很是浪费时间&#xff0c;在springboot中就有一种热部署方式&#xff0c;可以实现想要修改不需要每次都重新启动&#xff0c;保存即可生效 用法&#xff1a; 一、maven 添加 …