文档章节

springboot 入门教程(4)--web开发(spring mvc和Thymeleaf模板,带源码)

pxk
 pxk
发布于 2017/09/10 18:31
字数 998
阅读 401
收藏 9

首先回顾下前几篇的内容: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 {

	@Override
	public 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//依赖注入service
	UserService 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操作(后台部分-附源码)

    

© 著作权归作者所有

共有 人打赏支持
pxk

pxk

粉丝 87
博文 26
码字总数 26616
作品 0
成都
程序员
Spring Boot学习资源

Spring Boot 入门 http://blog.csdn.net/isea533/article/details/50278205 ---------------------------------------------------------- Spring Boot 静态资源处理 http://blog.csdn.net/c......

IamOkay
2017/02/17
0
0
SpringBoot入门之工程搭建(IDEA版)

Spring-Boot Spring的春天 在之前我们一直使用Spring、SpringMVC进行开发,的确,Spring让我们认识到了项目开发原来可以这么方便。但是大量的配置文件却是令人头痛的,即使我们想写一个简单的...

TyCoding
09/30
0
0
SpringBoot笔记(五)模板引擎thymeleaf和freemarker

SpringBoot本来不应该关注这块,但是既然都学了,就看看吧 SpringBoot属于前后端分离的微服务框架,默认的模板引擎是thymeleaf,虽然也能支持JSP,但是比较麻烦,另外freemarker也是SpringB...

世外大帝
04/25
0
0
10分钟入门SpringBoot

SpringBoot是基于spring框架衍生的一种新的微服务框架,如果对Spring有一定了解的同学肯定知道在Spring中需要配置各种xml文件完成bean的注册操作,随着服务越来越多,配置就变得越来越复杂,...

jwfy
06/14
0
0
不学无数——SpringBoot入门V

SpringBoot 1.开发一个Web程序 SpringBoot是非常适合开发Web应用的,因为他内嵌有Tomcat、Jetty、Undertow或者Netty。大部分的应用可以通过加载spring-boot-starter-web模块能够快速的创建并...

不学无数d
07/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

android -------- MVP+DataBinding 的使用

天来说说MVP+DataBinding 的使用 以一个登录案例来讲解 布局:(ConstraintLayout 作为根布局) <layout> <data> <variable name="onClick" ......

切切歆语
47分钟前
1
0
阿里十年Java架构经验总结,这几点尤为重要!

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月28K你却只有10K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差)...

别打我会飞
51分钟前
1
0
Ubuntu 中安装和配置 Caddy 服务

首先访问:https://caddyserver.com/download 选择操作系统、插件和授权类型,点击 Download 下载编译好的文件包,或者执行页面最下面的一键安装脚本,完成 caddy 的安装。 安装完成后,/us...

八风不动
今天
2
0
java代码效率优化

1、 尽量指定类的final修饰符 带有final修饰符的类是不可派生的。 2、 尽量重用对象。 3、 尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较...

踏破铁鞋无觅处
今天
3
0
程序员的几款利器

1. 作为程序员,最希望的就是自己的代码能够在一个云平台上保留下来,gitlab等等这些很多。但是我这里推荐“码云平台”码云平台和开源中国可以直接关联起来。开源中国可以记录博客,当然也是...

ChinaHYF
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部