工作之余,学习一下,使用Intellij IDEA 新建一个 Spring Boot项目,算是对 Spring Boot 入一个门
新建项目
完成之后,效果如下:
直接运行:
(这里我没有关注Maven,是因为我就默认使用了Intellj IDEA 自带的Maven工具了,不想配了,大不了下载的东西 会放在C盘用户目录下一个叫.m2的文件夹。我们用 spring boot 就是为了 简化各种配置的。你看上面,我们只需要 写写 项目应用的名字,然后就OK了。不要有强迫症,你看,这个spring boot,我即没有关注maven,也没有关注tomcat,为什么? 这些根本就不是我们操心的,人家都集成好了。)
浏览器运行:
这个404很明白的啦,没有页面。我们细看一下
接下来,我们写点东西。
先不考虑页面。先写个Controller。
@Controller public class HelloController { @RequestMapping("/") @ResponseBody public String index(){ return "Hello World!"; } }这里先不返回view,返回数据。重新运行。
接下来考虑 返回view的情况。
大多数 thymeleaf 模板引擎来替换掉 jsp。我们就当学习一下潮流吧。这东西其实也不难。就是不熟练而已。
接下来,我们重新做一些有意义的事情。
在HelloController中添加一个 requestMapping
@RequestMapping("/index.html") public String toIndex(){ return "index"; }
那么接下来return "index" 就是 index.html放在哪呢。注意不是index.jsp。就是index.html。
重新运行。
那么这里有些要注意了。不能出现单标签的了,因为thymeleaf引擎比较严格。以后这种肯定不行了,必须类似这样或者 所以我们修改一下
但是你发现刷新并没有效果。必须重新运行。
运行成功。但这就不爽勒,为什么不能像以前tomcat那样,改了刷新就可以看到效果呢。那么这种类似 热部署操作是需要配置的。参考 http://www.cnblogs.com/bingshu/p/6876030.html。
1. 修改pom文件
org.springframework.boot spring-boot-devtools true true
2. 修改idea。org.springframework.boot spring-boot-maven-plugin true
1. 快捷键: Ctrl+Alt+S
OK完之后,
2. 快捷键:Ctrl+Shift+Alt+ /
OK之后,再重启项目试试。 你可以发现,你修改java代码,项目会重新部署,修改html文件,刷新浏览器,效果也会修改的。完美实现 “热部署”
这不算什么。我们还没有用上 那个新模板引擎的语法呢。 先搞点简单的,复杂的 各位还是请百度。
public class Student { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }新建了一个类Student。然后controller中加入这样的代码。
@RequestMapping("/students.html") public String students(Map下面编写 students.html页面,Object> map){ List list = new ArrayList<>(); for(int i=0;i<10;i++){ Student student = new Student(); student.setName("张三"+i); student.setAge(23+i); list.add(student); } map.put("sList",list);// 返回给页面的数据 return "students"; }
html>
xmlns:th="http://www.thymeleaf.org">
charset="UTF-8" />
Title
所有学生
th:each="stu,stuSta:${sList}">
-
序号:th:text="${stuSta.index}"/>
姓名:<th:block th:text="${stu.name}">th:block>
年龄:th:text="${stu.age}">
不要纠结着写红线了,不是错误。这是 这个集成工具的问题,不要纠结,没有错。修复也行,alt+enter,但那句代码都是注释状态,毫无意义,还多上了java类,
真的,这样我就觉得 毫无意义了,明明一个纯html文件里,没必要出现这些类名的吧。
所以,不要纠结了,看着看着就习惯了。
浏览器访问
接下来,我们讨论一个常用功能那就是 日志功能。
spring boot 日志已经集成了,什么log4j,slf4j,logback什么的,所以不需要导什么包,直接用。
like this.
Logger logger = LoggerFactory.getLogger(getClass()); @RequestMapping("/students.html") public String students(Map,Object> map){ List list = new ArrayList<>(); for(int i=0;i<11;i++){ Student student = new Student(); student.setName("张三"+i); student.setAge(23+i); list.add(student); } map.put("sList",list);// 返回给页面的数据 logger.info("studentList: {}",list); return "students"; }
那日志级别什么的怎么调整呢。 这里 我们 做一个配置,当然不需要新建 log4j.properties。没有用。
我们写点东西,这个 是带提示的哦。
我们简单的写点东西
#log logging.file=mylog.log logging.path=logs logging.level.root=info #thymeleaf spring.thymeleaf.cache=false
再写一个简单的例子
@RequestMapping("/student/{name}.html") public String student(@PathVariable(name="name") String name, Map,Object> map){ Student student = new Student(); student.setName(name); student.setAge(23); map.put("student",student); return "student"; }
html>
xmlns:th="http://www.thymeleaf.org">
charset="UTF-8" />
< th:block th:text="${student.name}"/>的信息
该学生信息
姓名:th:text="${student.name}">
年龄:th:text="${student.age}">
好了,这个入门就到这了。下次继续聊 spring boot。