zoukankan      html  css  js  c++  java
  • SpringBoot访问NoSQL和简单的Thymeleaf-Spring-Spring-boot整合

    SpringBoot访问NoSQL

    SpringBoot访问Redis

    1. 在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>
    2. 在application.properties添加redis连接参数

      spring.redis.host=localhost
      spring.redis.port=6379
    3. 定义启动类

      @SpringBootApplication
      public class MyBootApplication {
      
      }
    4. 测试程序

      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

    1. 在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>
    2. 在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
    3. 定义主启动类

      @SpringBootApplication
      public class MyBootApplication {
      
      }
    4. 测试程序

      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结果

    1. 在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>
    2. 在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
    3. 编写实现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();
        
        }
    4. 编写实现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;
          }
      
      }
    5. 定义启动类、追加@SpringBootApplication、@MapperScan标记

      @SpringBootApplication
      @MapperScan(basePackages={"cn.xdl.dao"})
      public class MyBootApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(MyBootApplication.class, args);
          }
      
      }
    6. 启动Boot程序测试

    JSP响应界面

    /hello-->DispatcherServlet-->HandlerMapping-->HelloController-->ModelAndView-->ViewResolver-->/hello.jsp

    1. 在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>
    2. 在application.properties追加server、viewresolver定义

      #server
      server.port=8888
      
      #viewresolver
      spring.mvc.view.prefix=/
      spring.mvc.view.suffix=.jsp
    3. 编写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";
          }
      
      }
    4. 编写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>
    5. 编写启动类

      @SpringBootApplication
      public class MyBootApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(MyBootApplication.class, args);
          }
      
      }
    6. 启动测试

      http://localhost:8888/hello
      

    Thymeleaf模板响应界面

    模板技术是对JSP技术的一个替代品,优点如下:

    • 使用简单、方便(JSP复杂)
    • 运行机制简单、效率高(JSP-->Servlet-->.class-->HTML输出)

    Velocity : hello.vm + VTL

    Freemarker:hello.ftl + FTL

    Thymeleaf:hello.html + THTL

    1. 在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>
    2. 在application.properties追加server配置

      server.port=8888
      
    3. 定义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;
          }
      
      }  
    4. 定义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>
    5. 定义启动类

      @SpringBootApplication
      public class MyBootApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(MyBootApplication.class, args);
          }
      
      }
    6. 启动程序测试

      http://localhost:8888/hello
      
    7. 1.x版本的Boot需要取消严格的模板标记校验(开始和结束必须匹配)

      <dependency>
          <groupId>net.sourceforge.nekohtml</groupId>
          <artifactId>nekohtml</artifactId>
      </dependency>
      

      在application.properties添加spring.thymeleaf.mode=LEGACYHTML5

  • 相关阅读:
    NHibernate开源框架Cuyahoga学习之数据访问实现
    Petshop4.0 缓存设计学习
    Jquery实现ToolTip之元素定位
    客户单操作Cookie
    .Net 通过MySQLDriverCS操作MySQL
    NHibernate的基本使用
    提高ASP.NET性能的十大方法
    工作流引擎下基于表达式Tree复杂验证的实现
    C#注册表操作
    WinForm应用程序中的ComboBox实现ReadOnly功能
  • 原文地址:https://www.cnblogs.com/hx1098/p/9404374.html
Copyright © 2011-2022 走看看