这是在公众号里看到的一个 springboot项目,感觉好像不是特别难,就准备尝试一下,我把资料放在了放到了网盘里,要的可以私聊了。
先看看效果:
- 用Java开发工具(推荐Idea)选择 maven 项目导入
- 创建数据库 blog,并导入数据库脚本
- 修改开发环境(-dev)的配置文件中的数据库信息,确保连接的是自己的数据库 博客首页访问地址: localhost:80
- 博客后台登陆页面访问地址 localhost:80/admin 后台添加博客 博客主页刷新即可更新
这个是大致步骤。
首先maven项目导入一下:
然后看看有没有需要配置的地方,貌似没事。
然后导入一下数据库,当然先用Navicat 创建一个
因为我看了一下sql数据
应该需要自己先创建一个数据库的吧。
然后
把对应下载下来的sql文件导入进去
刷新一下就都有了
然后修改开发环境,连接自己的数据库
确保自己输入的是正确的,而且可能需要在url那边输入
&serverTimezone=UTC&
然后应该就是运行一下吧
我运行出现了:
Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
解决方法:
把这个enable launch 这个选项去掉
可能是由于版本的关系吧,有一系列问题。。。
1.Error: java: 程序包javax.validation不存在
要导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
2.还有一个是org.springframework.boot的报错
需要把这个注释掉:
然后更新一下
方法
org.springframework.data.repository.query.QueryByExampleExecutor.findOne(org.springframework.data.domain.Example)不适用
(无法推断类型变量 S
(参数不匹配; java.lang.Long无法转换为org.springframework.data.domain.Example))
方法 org.springframework.data.jpa.repository.JpaSpecificationExecutor.findOne(org.springframework.data.jpa.domain.Specification<com.lrm.po.Blog>)不适用
(参数不匹配; java.lang.Long无法转换为org.springframework.data.jpa.domain.Specification<com.lrm.po.Blog>)
又有这个错误,就是各种各样的版本升级问题。。。
有参考链接:https://blog.csdn.net/qq_41115379/article/details/114902108
需要在标红的地方
把findOne(id)改成findById(id).get()
把delete(id)改成deleteById(id)
例如:
public Type getType(Long id) {
return typeRepository.findById(id).get();
}
以及:
'PageRequest(int, int, org.springframework.data.domain.Sort)' has protected access in 'org.springframework.data.domain.PageRequest'
参考链接:https://blog.csdn.net/qq_41115379/article/details/114901833
把
Pageable pageable = new PageRequest(0, size, sort);
改成:
Pageable pageable = PageRequest.of(0, size, sort);
以及:
'Sort(org.springframework.data.domain.Sort.Direction, java.util.List<java.lang.String>)' has private access in 'org.springframework.data.domain.Sort'
参考链接:https://blog.csdn.net/qq_41115379/article/details/114901743
把:
Sort sort = new Sort(Sort.Direction.DESC,"updateTime");
改成:
Sort sort = Sort.by(Sort.Direction.DESC,"updateTime");
还有这里的问题:
应该就是Tag和Long之间的转换有问题
暂时先不管直接为空好了:
再运行一下
问题:程序包import org.junitiyu.Test;变红(RunWithd的问题可以直接导入解决)
我直接把他改成了 可能就是版本问题吧
import org.junit.Test;
再运行一下
s is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver即可
这个我也是本来应该知道的,还是版本的问题
rect the classpath of your application so that it contains a single, compatible version of org.thymeleaf.spring5.SpringTemplateEngine
是thymeleaf的版本冲突.或者降低springboot版本
<thymeleaf-spring5.version>3.0.9.RELEASE</thymeleaf-spring5.version>
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
参考了这个方法,直接把上面两个删了
然后运行一下:因为我的80端口有东西,所以弄成了82端口,代码改一下就可以了
访问 localhost:82/admin