springboot 入门教程(4)--web开发(spring mvc和Thymeleaf模板,带源码)
2019独角兽企业重金招聘Python工程师标准>>>
首先回顾下前几篇的内容:springboot 入门教程(1),springboot 入门教程-Thymeleaf(2), springboot 入门教程(3)-运行原理、关键注解和配置
这篇呢就直接进入主题撸代码。(项目使用了maven,大家最好也用maven进行管理哦,要不然很麻烦的)
为方便大家快速学习和理解,补充源码下载地址:http://pan.baidu.com/s/1eSGPyDW
1、新建项目,建好目录结构
我们重新建一个maven web项目,然后命名好自己的包,我的目录结构如图:
2、引入springboot和springboot web的包
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>1.5.6.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>1.5.6.RELEASE</version></dependency></dependencies>
3、编写启动类
package com.pxk.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
到这一步我们就可以启动一个web项目了,但是启动后是一个空的项目(启动的web容器是spring-boot-starter-web中的自动配置的tomcat端口是8080,当然可以根据需要修改成其他容器)。
4、我们要写自己的bean,然后托管到spring容器中
这个的用法其实很普通的spring项目没太大区别,普通spring项目中我们想托管bean,那可以用xml配置也可以用注解(@Repository,@Component,@Service、@Controller、@Bean)配置然后启动注解扫描即可。springboot也一样只不过不需要手动开启注解扫描,默认会扫描项目src/java/main下面的所有类。
例: 我们在domain目录下建一个User实体类(暂且只有id和name),然后在service目录中新建一个UserService接口和UserServiceImpl的实现类,类中实现接口的一个方法
UserServiceImpl
package com.pxk.springboot.serivce.imp;import org.springframework.stereotype.Service;import com.pxk.springboot.domain.User;
import com.pxk.springboot.serivce.UserService;
@Service//注入成service
public class UserServiceImpl implements UserService {@Overridepublic User getUser(String name) {return new User(name);}
}
5、编写一个conntroller
采用@RestController注入为一个控制器,然后调用service的业务方法
package com.pxk.springboot.conntroller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;import com.pxk.springboot.domain.User;
import com.pxk.springboot.serivce.UserService;@Controller
@RequestMapping("/user")
public class UserController {@Autowired//依赖注入serviceUserService userService;@RequestMapping("/getUser/{name}")//定义requestMapping rest风格@ResponseBody//返回json格式数据protected User getUser(@PathVariable(value="name") String name){return userService.getUser(name);}@RequestMapping("/getUserByName/{name}")//定义requestMapping rest风格protected String getUserByName(@PathVariable(value="name") String name,Model model){User user= userService.getUser(name);model.addAttribute(user);return "user";}
}
getUser返回的是json格式呼叫 因为加了@ResponseBody注解,如果你这个conntroller都返回json可以在类注解上加入@RestConntroller
getUserByName是返回到视图解析器,视图名称为user,user.html模板默认位置在src/main/resources下。
以上注解都是spring 和spring mvc的注解,如果你有一个已有的spring项目你应该知道怎么把他迁移为springboot的项目了吧,移植完以后你会发现没有那么多繁琐的xml配置文件真的是一件很爽的事情。
6、集成Thymeleaf模板引擎
完成参考springboot 入门教程-Thymeleaf(2)进行集成
7、将后台准备好的数据加载到模板中
编写模板页面html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>userList</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body><!--/*@thymesVar id="name" type="java.lang.String"*/--><p th:text="'my name is:' + ${user.name} + '!'">姓名</p>
</body>
</html>
8、启动并放
run APPlication ,访问http://localhost:8080/user/getUserByName/pxk
效果如下图:
基本和第一篇文章有点类似,这篇只是补充说明了和spring 以及spring mvc的整合。
大家没有看到一个xml文件吧,是不是很简单啊。
下一篇springboot 入门教程(5) 基于ssm框架的crud操作(后台部分-附源码)
转载于:https://my.oschina.net/u/1791512/blog/1533775
springboot 入门教程(4)--web开发(spring mvc和Thymeleaf模板,带源码)相关推荐
- spring MVC cors跨域实现源码解析
spring MVC cors跨域实现源码解析 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议.IP.http方法任意一个不同就是跨域. sp ...
- 详述 Spring MVC 启动流程及相关源码分析
文章目录 Web 应用部署初始化过程(Web Application Deployement) Spring MVC 启动过程 Listener 的初始化过程 Filter 的初始化 Servlet ...
- Spring MVC 项目 JSP 页面显示源码
问题描述:Spring MVC 项目的 JSP 页面跳转显示源码,而非页面 原因:Spring MVC 项目的前端拦截器 拦截了 JSP 页面 改正:去掉 * 插曲:如果仅仅改动 JSP 头文件为 H ...
- C++入门教程:大白话讲解,新手基础篇(附源码及详解、视频课程资料推荐)
C++ Tutorial C++教程 前言 视频教程 文字教程 集成开发环境(IDE) 编译器 工作原理 学习指南 入门书籍 进阶书籍 算法.竞赛书籍 教程 标准构建 程序解释 第一个C++程序--& ...
- php留言板入门教程,一个php留言板实例详解(附源码下载)
我的留言板 $username = isset($_REQUEST['username']) ? $_REQUEST['username'] : ''; //姓名 $sex = isset($_R ...
- Flask学习 黑马程序员-6节课入门Flask框架web开发视频(中途撤退,寻找py3教程)
文章目录 postman工具 get和post 如何给路由传参 解析 @app.route('')这个叫视图函数 Jinja2模板引擎 动态传参 注释.变量代码块以及控制代码块的使用 注释:ctrl+ ...
- SpringBoot入门教程(转)
SpringBoot入门教程 注:此文章转载于GitHub,但是原文章图片加载出错,因此我整理了一下,并非本人原创,在此感谢原作者! 附上原文视频课地址供大家学习: www.bilibili.com/ ...
- SpringBoot入门教程
SpringBoot入门教程 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案. 2.微服务 微服务:架构风格 ...
- 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》
目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node.js+koa2+mysql打造前后端分离精品项目<旧岛> 项目实战 20190317-2020 ...
最新文章
- iMeta:高颜值高被引绘图网站imageGP在线发表(视频简介+实操教程)
- 如何将PDF转换成JPEG图片?
- 深度学习框架TensorFlow、Caffe、MXNet、PyTorch如何抉择?6 位大咖现身说法
- Paper:《Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类》翻译与解读
- .net MVC4.0项目发布到阿里云虚拟主机中遇到的问题。
- Struts2显示double价格格式0.00
- 专访Google数据科学家彭晨:大数据成为潮流走近各行各业!
- 【渝粤教育】广东开放大学 操作系统原理与应用 形成性考核 (46)
- podman 在 windows 安装
- 利用easyCHM制作JavaAPI帮助文档
- 数据同步工具oracle goldengate安装与配置
- microsoft word无法插入公式
- mac:通过鼠标右键 新建文本文档
- 【《编码(Coding)》读后感】隐匿在计算机软硬件背后的语言
- python下载收费视频_用Python下载知乎视频,非常实用
- 独家对话行癫:最详解密阿里云顶层设计和底层逻辑
- 新词发现:中文新词识别技术简介
- grafana+prometheus+node_exporter Window笔记
- Masonry--“瀑布流” 布局(图片较多,推荐在WIFI下查看)
- 2019南昌网络赛 Yukino With Subinterval —— 树套树 或 cbq分治
热门文章
- 20189218 2018-2019-2 《密码与安全新技术专题》第9周作业
- Hibernate 中配置属性详解(hibernate.properties)
- 领域驱动设计:软件核心复杂性应对之道
- 怎样使windows上的javaWEB项目公布到Centos上
- Linux 时钟精度 与 PostgreSQL auto_explain (explain timing 时钟开销估算)
- Mac OS Terminal 几个快捷键
- NIS、NFS 與 Autofs 整合應用
- MySpaces性能提高的过程(转)
- 数据结构与算法分析c++第四版_研分享 | 人工智能学院数据结构与算法分析考研备考整理...
- Linux Kernel TCP/IP Stack — L1 Layer