【SpringBoot】项目遇到的问题

前言:

    都是小错误,仅仅记录一下菜的过程

正文:

1、找不到Mapper

Field resourceMapper in com.giska.service.ResourceServiceImpl required a bean of type 'com.giska.mapper.ResourceMapper' that could not be found.

原因:包引错了


应该是:import org.apache.ibatis.annotations.Mapper;

= {DataSourceAutoConfiguration.class},排除此类的autoconfig。启动以后就可以正常运行。

这是因为添加了数据库组件,所以autoconfig会去读取数据源配置,而我新建的项目还没有配置数据源,所以会导致异常出现。

一共两个包引的一个偏偏是错的,像前天晚上10点多坐车回家,一共两个方向偏偏坐错了方向,终点站还是那种特别荒凉的地方

2、@SpringApplicationConfiguration(Application.class)过时换成@SpringBootTest


扫描二维码关注公众号,回复: 1216322 查看本文章

3、junit 测试报错 java.lang.Exception: No runnable methods添加TEST注解

4、Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.

 启动类的@EnableAutoConfiguration或@SpringBootApplication中添加exclude= {DataSourceAutoConfiguration.class}以排除此类的autoconfig:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})启动以后就可以正常运行。

            因为添加了数据库组件,所以autoconfig会去读取数据源配置,而新建的项目还没有配置数据源,所以会导致异常出现。


5、properties和yml的格式是不一样的,这个还是要说一下的,有时候往往是于最熟悉的地方给自己挖坑


6、关于Controller返回值、实现界面跳转问题

    跳转界面,出现了不跳界面打出字符串:因为使用了@RestController返回的做了一层json处理,需要将restController换成@Controller;如果返回实体或字符串,方法上添加ResposeBody注解

       那咱们就来聊聊@Controller,@ RestController(均用来表示spring某个类是否可以接受HTTP请求)

         @controller:标识spring类是spring MVC controller处理器

         @restController:@RestController是@Controller和@ResponseBody的结合体。

        扩展一下:组合注解和元注解条件注解

            元注解:可以注解到别的注解上的注解;

            组合注解:1、被元注解 注解的注解,具备元注解的功能(是吗);2、多个注解组合到一块生成一个新的注解(貌似很有道理)

            条件注解:根据条件选择bean对象的创建,状态模式的一种体现,多态的应用部分

                 为每种独立的条件创建一个类,根据这个类对应的条件的成立情况我们来选择不同的任务来执行。使用接口声明任务;


7、Field resourceMapper in com.giska.service.ResourceServiceImpl required a bean of type 'com.giska.mapper.ResourceMapper' that could not be found.找不到这个文件,我看了又看、想了又想,jar、jdk配置、注解都没有问题啊,想想哪里还和数据库、mapper有关系:启动类

看了一下启动类是这么写的:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

把()里面的东西去了,重新启动、没有问题了;我的天~


 8、今天帮小伙伴解决问题的时候把没有保存的笔记关了,现在回忆不起来今天做什么了,现在效率好low,不抱怨,记录问题吧,今天关于分页的问题我遇到一次、小伙伴遇到一次,我这里的分页还好,一会解决了,他们开始也分不了页、我给各种修改了之后还是不行,换了一个接受数据库数据的list(那个方法里面有几个list)分页可以,再换回来、不行,在改、不行,改回来、可以了……这就尴尬了,说了这么多废话、大家可以体会到我的心情了吧,下面就可以写一下这么分页 吧:

springboot首先在pom文件中引入分页插件:

<!-- 分页助手,注意版本, -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>4.0.0</version>
		</dependency>
		<!-- springboot分页插件 -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.5</version>
		</dependency>

在application.properties或yml文件中添加:

#分页配置
pagehelper.reasonable=true;//智能处理
pagehelper.support-methods-arguments=true;

开始分页:

//分页的类,包装一下
PageModel pageModel = new PageModel();
…………逻辑处理
//获取分页信息,总记录数,总页数,当前页码,
PageInfo<ResourceModel> pageInfo = new PageInfo<>(resourceList);

如果不行的话、等一下再见或者换一个单纯点的list成功了之后再换回来,不行的话、等一会(这样确实不符合逻辑,我也很无奈,菜的感觉真不好)


9、今天还有个收获是数据库里面的时间戳,

问题使我成长,问题使小伙伴设置了两个列都是时间戳,一个没有问题一个没有值,这是什么情况?下面来了解下

首先建一张表,设置好时间戳:)

CREATE TABLE `timestamp_example` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `insert_row` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `update_row` timestamp NOT NULL DEFAULT  ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `measured_on` (`measured_on`)
) ENGINE=InnoDB;

1、DEFAULT CURRENT_TIMESTAMP:insert操作,这个字段有没有set都插入当前系统时间;

2、ON UPDATE CURRENT_TIMESTAMP:update操作,值有没有变化、这个字段的值都会更新为update操作的时间;

3、不设置上面的等同于设置为DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

时间戳是数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节,不适合作为键使用;(待理解)


这个链接是pageinfo的变量


小结:

    知识的小船总是划不到岸

猜你喜欢

转载自blog.csdn.net/ma15732625261/article/details/80111192