最近了解了一些springboot的东西,整体感觉springboot 比以前的web框架要简单不少,以前不管是比较老的ssh(Spring+hibernate+struts)(不要和我讨论更老的webwork struts1 刚毕业在大学都开始struts2了真心没见过webwork和struts1) 还是当下比较常见的框架ssm(Spring+SpringMVC+Mybatis)都需要一大段一大段xml配置,而且一不小心就出错,另外就是有没有发现在我们每次创建项目的时候都是习惯性的把以前的项目的xml文件copy到新项目省得再写了,这说明什么?说明很多项目中的xml都有很多的类似甚至说是重复的地方,而在springboot中就不用再写那么多的xml了(总感觉Java一种跟在xml屁股后面走不是什么好事,为什么一种语言非要和那些xml一块使用呢!),springboot的改进可能也是受到新的语言和技术对web方面的冲击造成的,看看现在的一些脚本语言node、python、ruby 在web方向的蓬勃发展以及语言本身的简洁再与spring的略显臃肿比较起来看也是到了该改变的时候了。好吧,废话多了点,现在开始创建一个helloworld版的springboot项目。
我用的是sts一种类似于eclipse的IDE(公司其他同事都用的sts所以自己也从原来的eclipse改成sts了不过没发现有什么区别)。
首先点击sts里面的file-》new然后选中 "Spring Starter Project" 然后会出现如下图:
上面的那个“Type”表示jar包构建工具,可以选择maven或者gradle,因为我们公司用的maven所以就选择了maven了,以后会发一篇gradle配置及项目创建的文章。然后next进入下面的界面,Boot version 应该指的是boot的版本吧,可能不同的版本对spring的版本有关系我也不太清楚,直接就下一步了。
然后点击finish就会出现下面的进度条,进度条完毕项目也就创建完毕了。下面就是我们创建的springboot的项目。
然后创建一个controller,一个html,一个js,如图:
下面是代码:
HelloWorldController.java的代码:
package com.example.demo.controller;
import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
Logger log = Logger.getLogger(HelloWorldController.class) ;
@RequestMapping("/hello")
public String sayHello(String name){
log.info("进入hello中");
return "hello "+name ;
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="jquery/jquery-3.0.0.js"></script>
<script src="jquery/test.js"></script>
</head>
<body>
请输入你的名字:<input type="text" id="name" /><br>
<button id="sayHello" >提交</button><br>
<p style="font-size: 30px;font-weight: bold;" id="show" ></p>
</body>
</html>
test.js代码如下:
$(document).ready(function () {
$("#sayHello").click(function() {
var name = $("#name").val() ;
var url = "hello" ;
$.ajax({
type : "POST", // POST
url : url,
data : {
name:name
}, // 组装参数
success : function(data) {
//alert("这是data:"+data) ;
$("#show").text(data) ;
}
});
})
}) ;
然后打开浏览器输入地址:http://localhost:8080/sayHello.html
页面如图:
随便输入文字然后点“提交”,然后会看到显示效果如下图:
springboot项目从创建到运行就完成了,但有些人会纳闷为什么用的是@RestController注解而不是常规@Controller注解,@RestController相当于@Controller+@ResponseBody的作用,他会将返回的内容以json的形式放入到response body中,在前台可以直接取到。所以我们可以推断或者猜测出如果把上面的@RestController注解改成@Controlle注解它会将return的内容当做一个页面返回,也就是会跳转到return内容的页面了。为什么SpringBoot会这样设计呢?可能只能用约定优于配置来说了,大多数人在使用spring 的controller 时候return 一般要么跳转页面要么就是返回json 数据,所以springboot干脆就直接按照绝大多数人的以前的约定来了。
本人也是刚开始看springboot 所以说的内容有许多不妥之处,欢迎指点。源码?找个机会会放到csdn上供大家下载的,以后也会陆续出"springboot 学习笔记(N)"的。
demo下载地址:http://download.youkuaiyun.com/detail/jgj0129/9871183