SpringBoot访问NoSQL
SpringBoot访问Redis
-
在pom.xml添加boot-data-redis定义
<parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.0.1.RELEASEversion> parent> <properties> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding> <java.version>1.8java.version> properties> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-data-redisartifactId> 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
SpringBoot访问Mongodb
-
在pom.xml追加boot-starter-data-mongodb定义
<parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.0.1.RELEASEversion> parent> <properties> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding> <java.version>1.8java.version> properties> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-data-mongodbartifactId> 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
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.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.0.1.RELEASEversion> parent> <properties> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding> <java.version>1.8java.version> properties> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-jdbcartifactId> dependency> <dependency> <groupId>com.oraclegroupId> <artifactId>ojdbc6artifactId> <version>11.2.0.3version> dependency> <dependency> <groupId>org.mybatis.spring.bootgroupId> <artifactId>mybatis-spring-boot-starterartifactId> <version>1.3.0version> dependency> <dependency> <groupId>com.github.pagehelpergroupId> <artifactId>pagehelper-spring-boot-starterartifactId> <version>1.2.3version> 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
loadPage( @RequestParam(required=false,defaultValue="1",name="page")int pageNum, @RequestParam(required=false,defaultValue="5",name="size")int pageSize){ PageHelper.startPage(pageNum, pageSize); List 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定义
org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.apache.tomcat.embed tomcat-embed-jasper -
在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 heretitle> 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.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>1.4.7.RELEASEversion> parent> <properties> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding> <java.version>1.8java.version> properties> <dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-thymeleafartifactId> 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 heretitle> 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需要取消严格的模板标记校验(开始和结束必须匹配)
net.sourceforge.nekohtml nekohtml 在application.properties添加spring.thymeleaf.mode=LEGACYHTML5