SpringBoot访问NoSQL和简单的Thymeleaf-Spring-Spring-boot整合
SpringBoot访问NoSQL
SpringBoot访问Redis
在pom.xml添加boot-data-redis定义
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> </dependencies>在application.properties添加redis连接参数
spring.redis.host=localhost
spring.redis.port=6379定义启动类
@SpringBootApplication
public class MyBootApplication { }测试程序
public static void main(String[] args) {
ApplicationContext ac =
SpringApplication.run(MyBootApplication.class, args);
RedisTemplate<Object,Object> redis =
ac.getBean("redisTemplate",RedisTemplate.class);
redis.opsForValue().set("name", "SpringBoot");
Object name = redis.opsForValue().get("name");
System.out.println(name);
Dept dept = new Dept();
dept.setDeptno(10);
dept.setDname("JAVA");
dept.setLoc("北京");
redis.opsForValue().set("dept", dept);
Dept dept1 = (Dept)redis.opsForValue().get("dept");
System.out.println(
dept1.getDeptno()+" "+dept1.getDname()+" "+dept1.getLoc()); }
SpringBoot访问Mongodb
在pom.xml追加boot-starter-data-mongodb定义
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency> </dependencies>在application.properties追加连接参数定义
spring.data.mongodb.uri=mongodb://localhost:27017/java20 #spring.data.mongodb.host=localhost
#spring.data.mongodb.port=27017
#spring.data.mongodb.database=java20定义主启动类
@SpringBootApplication
public class MyBootApplication { }测试程序
public static void main(String[] args) {
ApplicationContext ac =
SpringApplication.run(MyBootApplication.class, args);
MongoTemplate template =
ac.getBean("mongoTemplate",MongoTemplate.class);
List<Dept> list = template.findAll(Dept.class);
for(Dept dept:list){
System.out.println(
dept.getDeptno()+" "+dept.getDname()+" "+dept.getLoc());
}
}
SpringBoot MVC
主要封装了SpringMVC、Restful、内置tomcat等功能。
restful服务
SSM:SpringMVC、IOC、MyBatis
/dept/get GET 查询部门信息
/dept/list GET 分页查询部门信息
请求-->DispatcherServlet-->HandlerMapping-->DeptController-->DeptDao-->返回JSON结果
在pom.xml追加web、jdbc、mybatis-spring、驱动包定义
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency> <dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency> <!-- mybatis、mybatis-spring、autocofigurer -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency> <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency> </dependencies>在application.properties追加连接参数定义
#server
server.port=8888 #datasource
spring.datasource.username=SCOTT
spring.datasource.password=TIGER
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.driverClassName=oracle.jdbc.OracleDriver编写实现DeptDao
- 定义实体类Dept(同上)
定义Mapper映射器+注解SQL
public interface DeptDao { @Select("select * from dept where deptno=#{no}")
public Dept findById(int no); @Select("select * from dept order by deptno")
public List<Dept> findAll(); }
编写实现DeptController
@RestController
public class DeptController { @Autowired
private DeptDao deptDao; @GetMapping("/dept/get")// dept/get?no=xx
public Dept load(int no){
Dept dept = deptDao.findById(no);
return dept;
} @GetMapping("/dept/list")// dept/list?page=xx&size=xx
public List<Dept> loadPage(
@RequestParam(required=false,defaultValue="1",name="page")int pageNum,
@RequestParam(required=false,defaultValue="5",name="size")int pageSize){
PageHelper.startPage(pageNum, pageSize);
List<Dept> list = deptDao.findAll();
return list;
} }定义启动类、追加@SpringBootApplication、@MapperScan标记
@SpringBootApplication
@MapperScan(basePackages={"cn.xdl.dao"})
public class MyBootApplication { public static void main(String[] args) {
SpringApplication.run(MyBootApplication.class, args);
} }启动Boot程序测试
JSP响应界面
/hello-->DispatcherServlet-->HandlerMapping-->HelloController-->ModelAndView-->ViewResolver-->/hello.jsp
在pom.xml追加web、jasper定义
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency> </dependencies>在application.properties追加server、viewresolver定义
#server
server.port=8888 #viewresolver
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp编写HelloController
@Controller
public class HelloController { @GetMapping("/hello")
public ModelAndView execute(){
System.out.println("进入HelloController.execute处理");
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");//hello.jsp
mav.getModel().put("msg", "你好");
return mav;
} @GetMapping("/hello1")
public String execute1(ModelMap model){
System.out.println("进入HelloController.execute1处理");
model.put("msg", "Hello");
return "hello";
} }编写hello.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>SpringBoot JSP应用</h1>
<h2>${msg}</h2>
</body>
</html>编写启动类
@SpringBootApplication
public class MyBootApplication { public static void main(String[] args) {
SpringApplication.run(MyBootApplication.class, args);
} }启动测试
http://localhost:8888/hello
Thymeleaf模板响应界面
模板技术是对JSP技术的一个替代品,优点如下:
- 使用简单、方便(JSP复杂)
- 运行机制简单、效率高(JSP-->Servlet-->.class-->HTML输出)
Velocity : hello.vm + VTL
Freemarker:hello.ftl + FTL
Thymeleaf:hello.html + THTL
在pom.xml中追加boot-starter-thymeleaf定义
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.7.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency> </dependencies>在application.properties追加server配置
server.port=8888
定义Controller组件
@Controller
public class HelloController { @GetMapping("/hello")
public ModelAndView execute(){
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");///templates/hello.html
mav.getModel().put("msg", "SpringBoot Thymeleaf");
return mav;
} }定义html模板文件,放在src/main/resources/templates目录中
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1 th:text="${msg}"></h1>
</body>
</html>定义启动类
@SpringBootApplication
public class MyBootApplication { public static void main(String[] args) {
SpringApplication.run(MyBootApplication.class, args);
} }启动程序测试
http://localhost:8888/hello
1.x版本的Boot需要取消严格的模板标记校验(开始和结束必须匹配)
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
在application.properties添加spring.thymeleaf.mode=LEGACYHTML5
SpringBoot访问NoSQL和简单的Thymeleaf-Spring-Spring-boot整合的更多相关文章
- 第一篇 Springboot + Web MVC + MyBatis + 简单UI + Thymeleaf实现
源码链接:https://pan.baidu.com/s/1-LtF56dnCM277v5lILRM7g 提取码:c374 第二篇 Springboot mybatis generate根据数据库表自 ...
- SpringBoot学习笔记(二):SpringBoot访问静态文件、捕获全局异常、集成Thymeleaf、集成JSP
SpringBoot访问静态文件 什么是静态文件? 不需要通过web容器去得到的文件,直接通过路径就能得到的文件,比如项目的css,js,img等文件. 所有的资源文件都应该在src/main/res ...
- Java结合SpringBoot拦截器实现简单的登录认证模块
Java结合SpringBoot拦截器实现简单的登录认证模块 之前在做项目时需要实现一个简单的登录认证的功能,就寻思着使用Spring Boot的拦截器来实现,在此记录一下我的整个实现过程,源码见文章 ...
- Spring Boot2 系列教程(九)Spring Boot 整合 Thymeleaf
虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板, ...
- 极简 Spring Boot 整合 Thymeleaf 页面模板
虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板, ...
- SpringBoot + Layui +Mybatis-plus实现简单后台管理系统(内置安全过滤器)
1. 简介 layui(谐音:类UI)是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在,体积轻盈,组件丰 ...
- spring boot整合Thymeleaf的那些坑(spring boot 学习笔记之四)
这里简单记录一下Thymeleaf配置和使用的步骤 1.修改pom文件,添加依赖 <dependency> <groupId>org.springframework.boot& ...
- springboot学习之构建简单项目搭建
概述 相信对于Java开发者而言,spring和springMvc两个框架一定不陌生,这两个框架需要我们手动配置的地方非常多,各种的xml文件,properties文件,构建一个项目还是挺复杂的,在这 ...
- 一站式SpringBoot for NoSQL Study Tutorial 开发教程学习手册
SpringBoot2.0 + NoSQL使用教程,项目名称:“SpringBoot2NoSQL” 项目地址: https://gitee.com/475660/SpringBoot2NoSQL 项目 ...
随机推荐
- 利用MVC5+EF6搭建博客系统
https://www.cnblogs.com/wyt007/p/7880137.html
- 从DevOps到Cloud Native,应用上云姿势全解锁
本文由 网易云发布. 作者:林帆 序文 伴随着IaaS.PaaS等云端基础设施技术的成熟,“应用上云”成为许多企业软件部门的心头大事.通过把传统软件系统搬到云上,一方面可以让业务方获得更多的资源灵活 ...
- 世界线(bzoj2894)(广义后缀自动机)
由于春希对于第二世代操作的不熟练,所以刚使用完\(invasion process\)便掉落到了世界线之外,错综复杂的平行世界信息涌入到春希的意识中.春希明白了事件的真相. 在一个冬马与雪菜同时存在的 ...
- eclipse常见使用方法
1.修改字体大小,字符类型(设置为中欧字符) window-preferences-General-Appearance-Colors and Fonts-Basic-Text Font修改 2.展示 ...
- IdentityServer4登陆中心
1. 使用Vsual Studio Code 终端执行 dotnet new webapi --name IdentityServerSample 命令创建一个webapi 的 IdentitySer ...
- Python封装
什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其 含义是其他程序无法调用. 要了解封装,离不开“私有化”,就是将类或者是函 ...
- Python 3 虚拟机端口映射 VMware
编程语言(以Python 3 为例子) 编程语言最开始就是机器语言(低级语言,计算机能认识:0101... 最底层的指令代码),学习很困难.现在用机器语言的很少,芯片厂商的技术人员来编程之外:发展下来 ...
- java基本语法二
1 运算符 1.1 运算符的概念 运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等. 在java语言中,运算符有如下的分类: ①算术运算符. ②赋值运算符. ③比较运算符(关系运算符). ④逻 ...
- Neko and Aki's Prank CodeForces - 1152D (括号序列,dp)
大意: 将所有长度为2*n的合法括号序列建成一颗trie树, 求trie树上选出一个最大不相交的边集, 输出边集大小. 最大边集数一定不超过奇数层结点数. 这个上界可以通过从底层贪心达到, 所以就转化 ...
- tensorflow进阶篇-3
#-*- coding:utf-8 -*- #Tensorflow的嵌入Layer import numpy as np import tensorflow as tf sess=tf.Session ...