目录:
bug (一)Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are requiredProperty
报错
在一个springboot demo启动的时候出现以下错误 ,
解决方法
1.启动类 里配置的 (@MapperScan(“com.example.demo.dao.mapper”)),这里开始配置错了
@EnableAsync
@EnableTransactionManagement//处理事务
@EnableScheduling//定时任务
@MapperScan(basePackages = {"com.jjy.easy_chat.mapper"})//这个地方路径写错该对即可
@SpringBootApplication(scanBasePackages = {"com.jjy.easy_chat"})
public class EasyChatApplication {
public static void main(String[] args) {
SpringApplication.run(EasyChatApplication.class, args);
}
}
2.application.yml 里配置的路径
mybatis:
mapper-locations: classpath*:com/jjy/easy_chat/mapper/*.xml
3.检查mapper路径是否正确。若正确,查看在@EnableAutoConfiguration
注解后,是否添加了exclude或者在@SpringBootApplicatio
n若有添加,尝试删除。(我的错误原因)
@EnableAsync
@EnableTransactionManagement//处理事务
@EnableScheduling//定时任务
@MapperScan(basePackages = {"com.jjy.easy_chat.mapper"})
@SpringBootApplication(scanBasePackages = {"com.jjy.easy_chat"},exclude = DataSourceAutoConfiguration.class)
public class EasyChatApplication {
public static void main(String[] args) {
SpringApplication.run(EasyChatApplication.class, args);
}
}
原因:
@SpringBootApplication,它组合了@Configuration, @EnableAutoConfiguration, 和 @ComponentScan注解的功能。下面是这个注解的一些关键点:
@SpringBootApplication: 这是Spring Boot的主启动类注解,它告诉Spring Boot应用从哪个包开始扫描组件。
exclude: 这个属性用来排除自动配置的类。在代码中,它排除了DataSourceAutoConfiguration,这意味着Spring Boot将不会自动配置数据源。
删除掉exclude里面的东西即可
bug (二)Cannot invoke “javax.script.ScriptEngine.eval(String)“ because “engine“ is null
报错
Cannot invoke “javax.script.ScriptEngine.eval(String)” because “engine” is null
原因
我在使用一个验证码生成的工具asy-captcha库的验证码接口遇到javax.script.ScriptEngine.eval调用失败的问题,因为engine为null。
dk8中内置的JavaScript引擎 nashorn 被移除,导致报错Cannot invoke “javax.script.ScriptEngine.eval(String)” because “engine” is null
脚本引擎执行脚本语句报错,因为执行引擎为空。
解决方法
- 降低jdk版本为1.8
- 在pom文件添加JavaScript引擎 nashorn 依赖,重新启动项目即可
<dependency>
<groupId>org.openjdk.nashorn</groupId>
<artifactId>nashorn-core</artifactId>
<version>15.4</version>
</dependency>
后续还会更新
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力