Spring Boot FreeMarker 教程在 Spring Boot FreeMarker 教程中,我们将使用 FreeMarker 模板引擎和 H2 数据库创建一个简单的 Spring Boot Web 应用。 Spring 是流行的 Java 应用框架。 Spring Boot 致力于创建独立的,基于生产级别的基于 Spring 的应用,而无任何麻烦。 H2 是完全用 Java 创建的开源关系数据库管理系统。 它可以嵌入 Java 应用中或以客户端-服务器模式运行。 它易于部署和安装,占地面积小。 FreeMarkerFreeMarker 是适用于 Web 和独立环境的服务器端 Java 模板引擎。 模板使用 FreeMarker 模板语言(FTL)编写,这是一种简单的专用语言。 Spring Boot FreeMarker 示例以下示例使用 FreeMarker 模板引擎。 pom.xml
src
└── main
├── java
│ └── com
│ └── zetcode
│ ├── Application.java
│ ├── model
│ │ └── City.java
│ ├── controller
│ │ └── MyController.java
│ └── service
│ ├── CityService.java
│ └── ICityService.java
└── resources
├── application.yml
├── data-h2.sql
├── schema-h2.sql
├── static
│ └── css
│ └── style.css
└── templates
├── index.ftl
└── showCities.ftl
这是项目结构。 FreeMarker 模板文件的后缀为
这是 Maven 构建文件。
package com.zetcode.model;
import java.util.Objects;
public class City {
private Long id;
private String name;
private int population;
public City() {
}
public City(Long id, String name, int population) {
this.id = id;
this.name = name;
this.population = population;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPopulation() {
return population;
}
public void setPopulation(int population) {
this.population = population;
}
@Override
public int hashCode() {
int hash = 7;
hash = 29 * hash + Objects.hashCode(this.id);
hash = 29 * hash + Objects.hashCode(this.name);
hash = 29 * hash + this.population;
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final City other = (City) obj;
if (this.population != other.population) {
return false;
}
if (!Objects.equals(this.name, other.name)) {
return false;
}
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder('City{');
sb.append('id=').append(id);
sb.append(', name='').append(name).append('\'');
sb.append(', population=').append(population);
sb.append('}');
return sb.toString();
}
}
这是
注意,我们没有配置数据源。 如果没有配置数据,Spring 会以内存模式自动配置 H2。 我们希望有一个内存数据库,因此我们让 Spring 进行自动配置。
CREATE TABLE cities(id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255), population INT);
该 SQL 脚本创建
该脚本用数据填充表。 这两个脚本都位于类路径的根目录中。
package com.zetcode.service;
import com.zetcode.model.City;
import java.util.List;
public interface ICityService {
List<City> findAll();
}
@Autowired
private JdbcTemplate jdbcTemplate;
注入
这是要执行的 SQL。 我们从 return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(City.class));
这是 Spring Boot Web 应用的控制器类。 控制器以 @Autowired
private ICityService cityService;
我们将
@GetMapping('/showCities')
public ModelAndView showCities() {
var cities = cityService.findAll();
var params = new HashMap<String, Object>();
params.put('cities', cities);
return new ModelAndView('showCities', params);
}
此控制器方法可提供城市列表。 我们从城市服务中找到所有城市对象,并将结果列表放入参数中。 Spring 将找到名为
<!DOCTYPE html>
<html>
<head>
<title>Home page</title>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
</head>
<body>
<a href='showCities'>Show cities</a>
</body>
</html>
<link rel='stylesheet' href='css/style.css'>
我们包括静态 CSS 文件。
我们遍历城市列表,并将每个城市的详细信息放入一个表格行中。
package com.zetcode;
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);
}
}
我们设置了 Spring Boot 应用。 图:列出城市 该应用部署在内置的 Tomcat 服务器上,该服务器监听端口 8080。 在本教程中,我们使用 FreeMarker 和 H2 创建了一个 Spring Boot Web 应用。 您可能也对相关教程感兴趣: FreeMarker 教程, Java 教程或列出所有 Spring Boot 教程。 |
|
来自: Frank_Chia > 《JAVA》