SpringBoot项目总结

 

目录

1.版本的选择

2.pom.xml总结

其他的总结:

 


1.版本的选择

博主选择的是:

<version>2.1.9.RELEASE</version>

如果选择较高版本,如2.2.0那么与之前的版本会存在一些问题,如:在运动JPA时候,2.1.9版本的Sort类与Pagealbe类的构造器是public属性的,而2.2.0是private属性,那么就不能显示的构造。怎么解决,我也还不知道。。。,代码如下:

Sort sort = new Sort(Sort.Direction.DESC, "id");
Pageable pageable = new PageRequest(start, size, sort);

如果你用的是2.2.0或者更高级的版本,就不能这样初始化sort与pageable。

2.pom.xml总结

下面主要总结了,这次学习项目用到的依赖,以及它们的作用。

  1. 增加对JSP支持,需要增加的依赖:
            <!-- servlet依赖. -->
            <dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>javax.servlet-api</artifactId>
            <!-- JSTL. -->     
           <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
            </dependency>
            <!-- tomcat的支持.-->
            <dependency>
                 <groupId>org.apache.tomcat.embed</groupId>
                 <artifactId>tomcat-embed-jasper</artifactId>              
            </dependency>    
            <!-- springboot tomcat 支持,貌似没有这个依赖也是OK的 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </dependency>
    同时在src/main/resources目录下增加application.properties文件,如果有直接修改。用于视图重定向jsp文件位置。
    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp

     

  2. 让SpringBoot自动重启,又名热部署。作用:当你启动程序之后,你修改了JSP文件之后,不需要关掉程序然后重新启动程序,就能看到修改后的结果。注:html静态文件,不需要热部署修改之后刷新之后也能直接看到效果。
    方法:一个依赖+一个插件(这个插件一般是默认添加上的)
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
    </dependency>
    
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    另外,如果想要修改了类之后,也能自动重启,那么需要如下设置:
    1)Idea的settings中找到Compiler里面的Build project automatically勾选上。(这一步也许可以省略第二步才是关键)
    2)到application.properties中加上:
    spring.thymeleaf.cache=false
    spring.devtools.restart.enabled=true
    spring.devtools.restart.additional-paths=src/main/java

    注:如上配置后,的确控制台会自动重启,但是不知道为啥,修改了类的内容,却没有达到效果。
     

  3. 增加对JPA支持,JAP是Sun官方提出的Java持久化规范,方便操作数据库。
            <!-- jpa-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    同时需要mysql的依赖。
    <!-- mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.21</version>
    </dependency>
    还需要在application.properties配置:(数据库链接必须的参数)
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jdbctest?characterEncoding=UTF-8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    如果写上这条配置,会自动更新表结构,也就是说数据库中没有那个表,执行程序的话会自动创建更新。
    spring.jpa.properties.hibernate.hbm2ddl.auto=update

     

  4. 增加Mybatis的依赖:同时也需要mysql依赖。
    <!-- mybatis -->
    <dependency>
    	<groupId>org.mybatis.spring.boot</groupId>
    	<artifactId>mybatis-spring-boot-starter</artifactId>
    	<version>1.1.1</version>
    </dependency>
    <!-- mysql -->
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    	<version>5.1.21</version>
    </dependency>

    在application.properties新增数据库链接必须的参数:

    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jdbctest?characterEncoding=UTF-8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    配置了上面的东西Mybatis可以用注解方式来操作数据库CRUD了,想用xml方式那么还需要配置:
    在application.properties中增加Mybatis xml配置:

    #Mybatis xml的配置
    mybatis.mapper-locations=classpath:com/jtl/springboot/mapper/*.xml
    mybatis.type-aliases-package=com.jtl.springboot.bean

    但是可能是我路径写的有问题,在调用mapper里操作数据库的方法时会出现错误:

    Resolved [org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jtl.springboot.mapper.CategoryMapper2.findAll]

    产生这个问题的表现为:打包或运行程序时*Mapper.xml没有自动复制到target中的classes输出目录mapper类包下。
    解决方式:换一种配置方案(可以去掉application.properties中的xml配置),在pom文件中添加mybatis加载配置文件的配置:添加在pom.xml的 build节点下,让编译器把src/main/java目录下的xml文件一同编译到classes文件夹下。

    <build>
     <resources>
       <resource>
           <directory>src/main/java</directory>
           <includes>
               <include>**/*.xml</include>
           </includes>
       </resource>
     </build>

     

  5. 分页:Mybatis需要有PageHelper插件的支持,而JPA不需要多余的插件依赖。
    <!-- pagehelper -->
    <dependency>
    	<groupId>com.github.pagehelper</groupId>
    	<artifactId>pagehelper</artifactId>
    	<version>4.1.6</version>
    </dependency>
    除此之外还需要一个PageHelperConfig的配置类。代码,略。
     
  6. 单元测试
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
    
            <!-- springboot test -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>

  7.  
  8.  

其他的总结:

  1. 关于Tomcat

本次项目是一个web程序,但是启动方式不是启动的Tomcat,而是启动SpringbootApplication类的主方法,原因是因为这个类把Tomcat嵌入进去了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当前课程中博客项目的实战源码是我在 GitHub上开源项目 My-Blog,目前已有 3000 多个 star:本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 个人博客项目功能的讲解,通过本课程的学习,不仅仅让你掌握基本的 Spring Boot 开发能力以及 Spring Boot 项目的大部分开发使用场景,同时帮你提前甄别和处理掉将要遇到的技术难点,认真学完这个课程后,你将会对 Spring Boot 有更加深入而全面的了解,同时你也会得到一个大家都在使用的博客系统源码,你可以根据自己的需求和想法进行改造,也可以直接使用它来作为自己的个人网站,这个课程一定会给你带来巨大的收获。作者寄语本课程录制于 2020 年,代码基于 Spring Boot 2.x 版本。到目前为止,Spring Boot 技术栈也有一些版本升级,比如 Spring Boot 2.7 发版、Spring Boot 3.x 版本发布正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。课程特色 课程内容紧贴 Spring Boot 技术栈,涵盖大部分 Spring Boot 使用场景。开发教程详细完整、文档资源齐全、实验过程循序渐进简单明了。实践项目页面美观且实用,交互效果完美。包含从零搭建项目、以及完整的后台管理系统和博客展示系统两个系统的功能开发流程。技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,对于提升你的市场竞争力有一定的帮助。实战项目预览    

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值