Spring诞生时是J2EE的轻量级替代品,无需开发重量级的EJB,通过依赖注入和面向切面变成,用简单的Java对象实现了EJB的功能。此时的Spring组件代码是轻量级的,但是配置是重量级的。因为Spring用很多XML配置。
Spring2.5引入基于注解的组件扫描,减少了很多xml配置。
Spring3.0引入了基于Java的配置,是一种安全的可重构配置方式,用以替代XML。此时还有某些Spring特性,比如事务管理和SpringMVC还需要xml或java显示配置。启用第三方库也需要显示配置,比如基于thymeleaf的web视图。配置servlet和过滤器同样需要在web.xml或servlet中初始化代码里进行显示配置。
Spring4.0对条件化配置提供支持。
Spring Boot 四个核心:
自动配置:Spring Boot在应用程序的Classpath里发现H2数据库库的库,就会自动配置一个嵌入式H2数据库。如果在Classpath里发现JdbcTemplate,就会配置一个JdbcTemplate的Bean。同理自动配置还涉及到Java持久化API、Thymeleaf模板、安全和SpringMVC。
起步依赖:不需要考虑group、Artifact、版本等问题,只需要导入Spring Boot的Web等起步依赖就可以解决这些问题。
命令行界面:
Actuator:提供在运行时检查应用程序内部情况的能力。
SpringMVC处理Web请求,Thymeleaf定义Web视图,Spring Data JPA把阅读列表持久化到数据里,thymeleaf为springboot默认配置的模板引擎,默认的模板配置路径为:src/main/resources/templates
,通过这种方法用html文件来替代jsp,jsp无法实现thymeleaf的很多特性。
源码地址:https://download.csdn.net/download/qq_38862234/10518800
项目的框架:
mywebapplication用作配置和启动引导。注意用于启动引导的mywebapplication必须在其他java文件的上层或同层
package com.zl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //开启组件扫描和自动配置,相当于Spring的@Configuration表明该类使用Spring基于Java的配置+Spring的@ComponentScan启用组件扫描+Spring Boot的@EnableAutoConfiguration开启自动配置
public class MywebApplication {
public static void main(String[] args) { SpringApplication.run(MywebApplication.class, args); //负责启动引导应用程序
}
}
1.通过idea的spring initializr创建项目
勾选web和thymeleaf
默认点击,完成。
2.定义实体User
package com.zl.bean;
public class User {
private Integer id;
private String name;
private String age;
private String address;
public User() {
}
public User(Integer id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age='" + age + '\'' +
", address='" + address + '\'' +
'}';
}
}
3.创建SpringMVC控制器controller
package com.zl.controller;
import com.zl.bean.User;
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 java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/list")
public String listUser(Model model){ //这个地方用model来存储数据,里面存储键值对,值可以为list
List userList = new ArrayList();
for(int i=0;i<10;i++){
userList.add(new User(i,"张三"+i,Integer.toString(20+i),"中国广州"));
}
model.addAttribute("users",userList);
return "/user/list";
}
}
4.呈现界面的Tymeleaf模板
Insert title here
用户列表
-
-
-
-
5运行应用程序,输入地址:http://localhost:8080/user/list