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模板,带源码)相关推荐

  1. spring MVC cors跨域实现源码解析

    spring MVC cors跨域实现源码解析 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议.IP.http方法任意一个不同就是跨域. sp ...

  2. 详述 Spring MVC 启动流程及相关源码分析

    文章目录 Web 应用部署初始化过程(Web Application Deployement) Spring MVC 启动过程 Listener 的初始化过程 Filter 的初始化 Servlet ...

  3. Spring MVC 项目 JSP 页面显示源码

    问题描述:Spring MVC 项目的 JSP 页面跳转显示源码,而非页面 原因:Spring MVC 项目的前端拦截器 拦截了 JSP 页面 改正:去掉 * 插曲:如果仅仅改动 JSP 头文件为 H ...

  4. C++入门教程:大白话讲解,新手基础篇(附源码及详解、视频课程资料推荐)

    C++ Tutorial C++教程 前言 视频教程 文字教程 集成开发环境(IDE) 编译器 工作原理 学习指南 入门书籍 进阶书籍 算法.竞赛书籍 教程 标准构建 程序解释 第一个C++程序--& ...

  5. php留言板入门教程,一个php留言板实例详解(附源码下载)

    我的留言板 $username = isset($_REQUEST['username']) ? $_REQUEST['username'] : '';   //姓名 $sex = isset($_R ...

  6. Flask学习 黑马程序员-6节课入门Flask框架web开发视频(中途撤退,寻找py3教程)

    文章目录 postman工具 get和post 如何给路由传参 解析 @app.route('')这个叫视图函数 Jinja2模板引擎 动态传参 注释.变量代码块以及控制代码块的使用 注释:ctrl+ ...

  7. SpringBoot入门教程(转)

    SpringBoot入门教程 注:此文章转载于GitHub,但是原文章图片加载出错,因此我整理了一下,并非本人原创,在此感谢原作者! 附上原文视频课地址供大家学习: www.bilibili.com/ ...

  8. SpringBoot入门教程

    SpringBoot入门教程 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案. 2.微服务 微服务:架构风格 ...

  9. 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》

    目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node.js+koa2+mysql打造前后端分离精品项目<旧岛> 项目实战 20190317-2020 ...

最新文章

  1. iMeta:高颜值高被引绘图网站imageGP在线发表(视频简介+实操教程)
  2. 如何将PDF转换成JPEG图片?
  3. 深度学习框架TensorFlow、Caffe、MXNet、PyTorch如何抉择?6 位大咖现身说法
  4. Paper:《Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类》翻译与解读
  5. .net MVC4.0项目发布到阿里云虚拟主机中遇到的问题。
  6. Struts2显示double价格格式0.00
  7. 专访Google数据科学家彭晨:大数据成为潮流走近各行各业!
  8. 【渝粤教育】广东开放大学 操作系统原理与应用 形成性考核 (46)
  9. podman 在 windows 安装
  10. 利用easyCHM制作JavaAPI帮助文档
  11. 数据同步工具oracle goldengate安装与配置
  12. microsoft word无法插入公式
  13. mac:通过鼠标右键 新建文本文档
  14. 【《编码(Coding)》读后感】隐匿在计算机软硬件背后的语言
  15. python下载收费视频_用Python下载知乎视频,非常实用
  16. 独家对话行癫:最详解密阿里云顶层设计和底层逻辑
  17. 新词发现:中文新词识别技术简介
  18. grafana+prometheus+node_exporter Window笔记
  19. Masonry--“瀑布流” 布局(图片较多,推荐在WIFI下查看)
  20. 2019南昌网络赛 Yukino With Subinterval —— 树套树 或 cbq分治

热门文章

  1. 20189218 2018-2019-2 《密码与安全新技术专题》第9周作业
  2. Hibernate 中配置属性详解(hibernate.properties)
  3. 领域驱动设计:软件核心复杂性应对之道
  4. 怎样使windows上的javaWEB项目公布到Centos上
  5. Linux 时钟精度 与 PostgreSQL auto_explain (explain timing 时钟开销估算)
  6. Mac OS Terminal 几个快捷键
  7. NIS、NFS 與 Autofs 整合應用
  8. MySpaces性能提高的过程(转)
  9. 数据结构与算法分析c++第四版_研分享 | 人工智能学院数据结构与算法分析考研备考整理...
  10. Linux Kernel TCP/IP Stack — L1 Layer