SpringBoot 基础 & 对SpringMVC的支持

第一章

第一节:SpringBoot 简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6. 绝对没有代码生成和对XML没有要求配置

第二节:STS 插件安装

第三节:SpringBootHelloWorld 实现

第二章 项目属性配置

第一节:项目内置属性

在application.yml配置Springboot项目的全局配置文件,内置属性

server.port=8888
server.context-path=/HelloWorld

第二节:自定义属性

在application.yml配置Springboot项目的全局配置文件,添加自定义属性

helloWorld=spring boot \u5927\u7237\u4F60\u597D //自动将中文转换成unicode编码

mysql.jdbcName=com.mysql.jdbc.Driver
mysql.dbUrl=jdbc:mysql://localhost:3306/db_boot
mysql.userName=root
mysql.password=123456

调用:

@RestController //声明他是控制器,接受http请求
public class HelloWorldController {

	@Value("${helloWorld}")//从配置文件中取数值
	private String helloWorld;
	
	@Resource  //实体类来源注解
	private MysqlProperties mysqlProperties;
	
	@RequestMapping("/helloWorld")
	public String say(){
		return helloWorld;
	}
	@value("${mysql.jdbcName}")
	private String jdbcName;
	
	@RequestMapping("/showJdbc")
	public String showJdbc(){
		return "jdbcName";
	}
}

第三节:ConfigurationProperties 配置

自定义属性的封装实体

package com.java1234.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * Mysql属性配置文件
 * @author Administrator
 *
 */
@Component
@ConfigurationProperties(prefix="mysql")
public class MysqlProperties {

	private String jdbcName;
	
	private String dbUrl;
	
	private String userName;
	
	private String password;

	public String getJdbcName() {
		return jdbcName;
	}

	public void setJdbcName(String jdbcName) {
		this.jdbcName = jdbcName;
	}

	public String getDbUrl() {
		return dbUrl;
	}

	public void setDbUrl(String dbUrl) {
		this.dbUrl = dbUrl;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	
}

调用:

@RestController //声明他是控制器,接受http请求
public class HelloWorldController {

	@Value("${helloWorld}")
	private String helloWorld;
	
	@Resource  //实体类来源注解
	private MysqlProperties mysqlProperties;
	
	@RequestMapping("/helloWorld")
	public String say(){
		return helloWorld;
	}
	
	@RequestMapping("/showJdbc")
	public String showJdbc(){
		return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"<br/>"
			  +"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"<br/>"
			  +"mysql.userName:"+mysqlProperties.getUserName()+"<br/>"
			  +"mysql.password:"+mysqlProperties.getPassword()+"<br/>";
	}
}

第三章 SpringBoot 之 MVC 支持

第一节:@RequestMapping 配置 url 映射

可以先映射到类,在映射到方法

第二节:@Controller 处理 http 请求

以前是转发到jsp,现在可以转发到其他,比如freemarker,需要在pom.xml添加freemarker支持
下面就可以直接用 “/freemarker/say”进行请求,freemarker返回的是模板文件,


@Controller
@RequestMapping("/freemarker")
public class HelloWorldFreemarkerController {

	@RequestMapping("/say")
	public ModelAndView say(){
		ModelAndView mav=new ModelAndView();
		mav.addObject("message", "springboot大爷你好!");
		mav.setViewName("helloWorld");
		return mav;
	}
}

ftl模板文件:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
show: ${message}
</body>
</html>

第三节:@RestController 处理 ajax 请求

后台:


@RestController
@RequestMapping("/ajax")
public class HelloWorldAjaxController {

	@RequestMapping("/hello")
	public String say(){
		return "{'message1':'SpringBoot大爷你好','message2','Spring大爷你好2'}";
	}
}

前端:

<script type="text/javascript">
	
	function show(){
		$.post("ajax/hello",{},function(result){
			alert(result);
		});
	}
	
</script>
</head>
<body>
<button onclick="show()">你大爷</button>

第四节:@PathVariable 获取 url 参数

获取url参数

@Controller
@RequestMapping("/blog")
public class BlogController {

	@RequestMapping("/{id}")
	public ModelAndView show(@PathVariable("id") Integer id){
		ModelAndView mav=new ModelAndView();
		mav.addObject("id", id);
		mav.setViewName("blog");
		return mav;
	}
}

前端请求页面 :

<a href="/HelloWorld/blog/21">博客</a>

后台返回结果:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
博客id: ${id}
</body>
</html>

第五节:@RequestParam 获取请求参数

可以获取get/post请求的请求参数

@Controller
@RequestMapping("/blog")
public class BlogController {	
	@RequestMapping("/query")
	public ModelAndView query(@RequestParam(value="q",required=false)String q){
		ModelAndView mav=new ModelAndView();
		mav.addObject("q", q);
		mav.setViewName("query");
		return mav;
	}
}

前端请求页面:

<a href="/HelloWorld/blog/query?q=123456">搜索</a>

后台返回结果:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
q: ${q}
</body>
</html>

附加内容:
pathVariable 和 requestParam 的补充内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值