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 项目 ...
随机推荐
- NetCore入门篇:(七)Net Core项目使用Controller之二
一.简介 1.说明Post,Get定义的区别. 2.说明如何路由定义. 二.Get.Post定义 1.api不定义访问方式时,同时支持get 和 post.如果定义某种方式,则仅支持某种方式.具体看代 ...
- Cesium简介 [转]
http://www.cnblogs.com/laixiangran/p/4984522.html 一.Cesium介绍 Cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎. ...
- .NET Core中使用Dapper操作Oracle存储过程最佳实践
为什么说是最佳实践呢?因为在实际开发中踩坑了,而且发现网上大多数文章给出的解决方法都不能很好地解决问题.尤其是在获取类型为OracleDbType.RefCursor,输出为:ParameterDir ...
- APP间传递消息
https://www.jianshu.com/p/d640ccfcea5f 1: URL Scheme 常用的App间传值方式.常见于分享等. 2: Keychain 借助系统类 Keychain ...
- Python 断言 assert 的用法
assert 后边接的表达式的返回值必须是布尔值 assert expression, "对错误的描述信息" 如果expression表达式返回的是True, 程序正常执行, 如果 ...
- 前端ajax传数据成功发送,但后端接收不到
前几天遇到这样的问题,找了好久,是在ajax contentType属性设置的问题. contentType默认是application/x-www-form-urlencoded 但是 ...
- js事件委托 jQuery写法
http://www.cnblogs.com/liugang-vip/p/5616484.html 不是抄的,这篇文章写的细 这是js 事件委托写法 <!DOCTYPE html> < ...
- (6)Oracle基础--简单查询
.基本查询语句 SELECT [DISTINCT] column_name1,... | * FROM table_name [WHERE conditions]; P: DISTINCT关键字的作 ...
- 查询改写(Query Rewrite)方法总结
为何需要Query改写 Query分析是搜索引擎的一个重要模块,对搜索结果的覆盖率和相关性至关重要.搜索引擎的检索过程包含了两个重要的阶段:匹配和排序.匹配也叫召回,表示根据用户的查询条件,尽可能多地 ...
- javaweb 项目的异常处理
首先关于异常的分类: java 中关于异常的分类情况是:throwable 是所有异常和错误的基类,下面在分为Error 和 Exception: 简单的异常体系结构如下图所示: 其中Exceptio ...