首页
文章分类
技术教程
知识积累
新闻日报
知识分享
今日新闻
其他页面
网站统计
友情链接
高清壁纸
虎牙直播
关于轩灵
热门文章
VS2019避免全部安装至C盘
2023-04月17号更新v2
中兴F450光猫破解隐藏模式让路由器拨号
影子系统出现BAD_SYSTEM_CONFIG_INFO蓝屏问题
WPS专业版密钥经常提示过期解决方案
标签搜索
windows
linux
python
centos
win11
centos7
网络技术
android
系统
windows 11
游戏
系统重装
Deepseek
ai
安卓
系统更新
Ubuntu
docker
win10
windows server
发布
登录
注册
找到
143
篇与
轩灵
相关的结果
- 第 15 页
2018-12-25
18款数据恢复软件合集大全
18款数据恢复软件 特别说明:以下软件打开后如果有提示升级的,请不要升级! 链接: https://pan.baidu.com/s/13kjYTDdfOvKCYcnU5llIGQ 提取码: 2qdp 红色底色的为比较经典的,黄色底色的为安卓、苹果手机的 01-万能数据恢复大师02-都叫兽数据恢复v2017.5.22.242中文特别版03-艾奇文件数据恢复软件全能版 v1.20.0308 中文特别版04-苹果手机数据恢复工具 iStonsoft iPhone Data Recovery 2.1.41 中文版05-USB 数据恢复工具 iStonsoft USB Data Recovery 2.1.25 中文多语版06-数据恢复工具 iStonsoft Data Recovery 2.1.37 中文多语版07-超强数据恢复反删除工具 R-Studio 8.5 build 170117 中文多语版08-数据恢复工具 FILERECOVERY 2016 Enterprise 5.5.9.7 中文版09-专业数据恢复工具 7-Data Recovery Suite 4.1 中文绿色版含安卓版10-硬盘数据恢复王 ApowerRecover 1.0.3 中文多语免版11-照片数据恢复工具 Ashampoo Photo Recovery 1.0.5 中文多语版12-SD卡数据恢复工具7-Data Card Recovery 1.5 中文多语版13-数据恢复工具Wise Data Recovery 3.87 + Portable 绿色中文版14-数据恢复工具SanDisk RescuePro Deluxe 5.2.6.6 中文多语版15-顶尖数据恢复软件16-安卓数据恢复工具7-Data Android Recovery 1.4 中文多语版17-iOS 数据恢复工具4Videosoft iOS Data Recovery 8.0.50 中文汉化版18-数据恢复工具iCare Data Recovery Pro 6.2 中文汉化特别版19-安卓数据恢复工具EaseUSMobiSaverforAndroidV4.1 英文版
分享
轩灵
2018-12-25
0
1,386
178
2018-12-25
Win10启动提示Winload.exe 0xc000000e
我们有时候在升级系统或者做些其他操作后,容易出现这个问题。当我们出现了这个问题的时候不需要惊慌,只需要按照以下方式操作即可。 使用制作好的启动盘,插上电脑。进入启动盘系统安装界面,我们不要点击下一步,直接按shift+F10呼出命令行界面输出以下命令 cd c:\windows\system32\ bcdedit /set {default} osdevice boot bcdedit /set {default} device boot bcdedit /set {default} detecthal 1操作成功后 重启电脑,如果依然无法解决重装系统即可。
技术
分享
知识积累
# windows
轩灵
2018-12-25
0
2,318
197
2018-11-16
记一次服务器磁盘突然爆满
昨日,阿里云发来一条消息,磁盘监控报警。 开始没有在意,以为是当时请求量过高导致的,直到晚上的时候,发现站点无法打开,数据库也无法连接,查看监控信息发现系统磁盘全部满了。。 开始以为: 原因就是,当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除。当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间。 尝试kill掉进程,清空/tmp目录,无解。磁盘仍然是占满的状态。 然后检查目录大小,发现我的web站点目录26G。服务器被注入文件了? 看到runtime目录,占用了26G的储存。runtime目录是thinkphp框架的缓存和日志目录。 进这个目录后,发现里面有N个日志文件,每个文件2M。 打开某个日志后查看详细信息后,里面全是数据库连接失败的错误日志,到这里已经知道是什么原因导致thinkphp5生成了这么多的日志文件了。 由于站点使用了队列来处理一些代码,为了方便,队列使用数据库作为驱动,而队列会持续查询数据库队列表,来处理任务。 而队列执行时是在cli模式下的,在thinkphp5.1文档里连接数据库一章有提到: 如果你使用的是长连接或者命令行,在超出一定时间后,数据库连接会断开,这个时候你需要开启断线重连才能确保应用不中断。 正是因为没有开始断线重连,数据库断开后但是队列一直在轮询着,才导致了框架一直生成错误日志,正好框架日志生成,默认没有自动删除日志配置,日志文件会一直累加。 接下来知道原因,解决方法就简单了。 框架开启数据库断线重连 开启日志自动清理(thinkphp V5.1.6+)
默认分类
技术
分享
# linux
轩灵
2018-11-16
0
1,423
145
2018-11-08
启动盘制作时出现错误解决方式
微软最新的 9 月份 1803 系统 install.wim 超过了 4G 软碟通下载打开链接 找到必备工具 即可看到软碟通 机械师工具箱下载 问题: 1. 在用软碟通写入镜像文件 install.wim 大于 4G 的时候,会发现这个文件写不进去 2. 在软碟通写入完成后,重装时会提示 install.wim 错误 分析: 由于 uefi 启动所支持的是 fat32 格式的磁盘,也就是我们 U 盘磁盘格式为fat32 这种类型,但是 fat32 有一个弊端就是不支持单个文件大于 4G。而在微软某些版本中 install.wim 这个文件已经超过了 4G。所以显然写不进去。 也有些人说用最新软碟通写进去了,但我想说的是。为什么能够写进去,因为磁盘格式转换成了 ntfs 格式。因为 ntfs 支持单个文件大于 4G。但是在很多情况下 uefi 启动是不支持 ntfs 的,这个需要主板支持。所以本文档的解决方式不推荐这种把磁盘转换为 ntfs 和 exfat 这种格式进行 注:不要用 ntfs 格式来做启动盘,这样对 U 盘会造成不可逆转的损伤。 首先解决这种问题的方式有好几种 把磁盘直接转换为 ntfs 格式,然后把镜像文件用压缩软件打开,把所有文件解压到 U 盘。然后启动盘就制作完毕了。 把磁盘直接转换为 exfat 格式,然后把镜像文件用压缩软件打开,把所有文件解压到 U 盘。然后启动盘就制作完毕了。 用 rufus 软件制作启动盘。可以制作单个文件大于 4G。 用软碟通选择 usb+hdd+v2 高级隐藏方式写入,写入后删除 1 分区sources/install.wim 文件,然后用打开 cmd 命令提示符以管理员方式运行,使用convert E: /fs:ntfs 命令转换 2 分区为 ntfs,注意盘符。在复制 1 分区所有文件到 2 分区,再把镜像里面完整的 install.wim 复制到 2 分区的 sources 目录。大功告成。 用软碟通进行常规方式写入,写入后进入 U 盘删除 sources/install.wim 文件。因为单文件大于 4G 而 fat32 支持最大单文件不超过 4G 所以这个 install 文件在这里就只有 100 多 MB 或者几百 MB。如下图 1 图 2: 解压镜像文件。解压后找到 sources/install.wim 文件。然后把这个文件复制到 C 盘。复制到 C 盘后 此时运行机械师工具箱,点击对应功能按钮,等待执行完毕。如图 3 然后会看到 C 盘多出来了 2 个 swm 格式的 install 文件。把这 2 个文件复制到 U 盘的sources 目录里面即可。如图 4 好了 关于单个文件大于 4G 制作启动盘的方法就讲到这里了。所有方式我在制作启动盘的过程中都使用过,经常使用第 4 种和第 5 种,但是有些主板不支持第 1.2.3.4 种方式,写入后启动不了,或者重装的安装界面报错。个人推荐使用第 5 种方法。因为第 5种方法 u 盘磁盘格式为 fat32。这是 uefi 启动兼容性最好的格式。
默认分类
技术
分享
# windows
轩灵
2018-11-08
0
2,979
179
2018-11-03
宝塔 专业破解版
1、安装面板免费板 安装命令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh 2、升级专业 wget -O update.sh http://download.bt.cn/install/update_pro.sh && bash update.sh pro3、找到路径/www/server/panel/class 找到文件名或者直接搜索:common.py 搜索代码164行 data = panelAuth().get_order_status(None) 替换下面 data = { ‘status’ : True, ‘msg’ : {‘endtime’ : 32503651199 } }4、完成后,进入 /www/server/panel/data 新建一个文件 文件名为:userInfo.json 内容空的,如果存在这个文件的删掉重新新建文件。 5、最后输入命令 /etc/init.d/bt restart 重启宝塔 如果使用失败,请恢复成免费版 代码为 wget -O update.sh http://download.bt.cn/install/update.sh && bash update.sh free
默认分类
分享
# linux
轩灵
2018-11-03
0
2,858
123
2018-10-11
Java 堆栈信息对象 StackTraceElement,获取当前线程的执行方法
java.langStackTraceElement类保存了Java中线程中的方法栈信息: 4个属性: /** * 声明的类,是类的全限定名 */ private String declaringClass; /** * 方法名 */ private String methodName; /** * 文件名一般指:XXX.java */ private String fileName; /** * XX.java类中的行数 */ private int lineNumber;一个简单的在SpringBoot 2.0.5-RELEASE 下的示例: for ( StackTraceElement ele : Thread.currentThread().getStackTrace()) { System.out.println("线程栈信息输出:" + ele.getClassName() + "$" + ele.getMethodName() + "$" + ele.getFileName() + "$" + ele.getLineNumber()); }输出结果如下: 线程栈信息输出:java.lang.Thread$getStackTrace$Thread.java$1559 线程栈信息输出:com.example.myboot.businessTests.RabbitMQTest$test2$RabbitMQTest.java$54 线程栈信息输出:sun.reflect.NativeMethodAccessorImpl$invoke0$NativeMethodAccessorImpl.java$-2 线程栈信息输出:sun.reflect.NativeMethodAccessorImpl$invoke$NativeMethodAccessorImpl.java$62 线程栈信息输出:sun.reflect.DelegatingMethodAccessorImpl$invoke$DelegatingMethodAccessorImpl.java$43 线程栈信息输出:java.lang.reflect.Method$invoke$Method.java$498 线程栈信息输出:org.junit.runners.model.FrameworkMethod$1$runReflectiveCall$FrameworkMethod.java$50 线程栈信息输出:org.junit.internal.runners.model.ReflectiveCallable$run$ReflectiveCallable.java$12 线程栈信息输出:org.junit.runners.model.FrameworkMethod$invokeExplosively$FrameworkMethod.java$47 线程栈信息输出:org.junit.internal.runners.statements.InvokeMethod$evaluate$InvokeMethod.java$17 线程栈信息输出:org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks$evaluate$RunBeforeTestExecutionCallbacks.java$73 线程栈信息输出:org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks$evaluate$RunAfterTestExecutionCallbacks.java$83 线程栈信息输出:org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks$evaluate$RunBeforeTestMethodCallbacks.java$75 线程栈信息输出:org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks$evaluate$RunAfterTestMethodCallbacks.java$86 线程栈信息输出:org.springframework.test.context.junit4.statements.SpringRepeat$evaluate$SpringRepeat.java$84 线程栈信息输出:org.junit.runners.ParentRunner$runLeaf$ParentRunner.java$325 线程栈信息输出:org.springframework.test.context.junit4.SpringJUnit4ClassRunner$runChild$SpringJUnit4ClassRunner.java$251 线程栈信息输出:org.springframework.test.context.junit4.SpringJUnit4ClassRunner$runChild$SpringJUnit4ClassRunner.java$97 线程栈信息输出:org.junit.runners.ParentRunner$3$run$ParentRunner.java$290 线程栈信息输出:org.junit.runners.ParentRunner$1$schedule$ParentRunner.java$71 线程栈信息输出:org.junit.runners.ParentRunner$runChildren$ParentRunner.java$288 线程栈信息输出:org.junit.runners.ParentRunner$access$000$ParentRunner.java$58 线程栈信息输出:org.junit.runners.ParentRunner$2$evaluate$ParentRunner.java$268 线程栈信息输出:org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks$evaluate$RunBeforeTestClassCallbacks.java$61 线程栈信息输出:org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks$evaluate$RunAfterTestClassCallbacks.java$70 线程栈信息输出:org.junit.runners.ParentRunner$run$ParentRunner.java$363 线程栈信息输出:org.springframework.test.context.junit4.SpringJUnit4ClassRunner$run$SpringJUnit4ClassRunner.java$190 线程栈信息输出:org.junit.runner.JUnitCore$run$JUnitCore.java$137 线程栈信息输出:com.intellij.junit4.JUnit4IdeaTestRunner$startRunnerWithArgs$JUnit4IdeaTestRunner.java$68 线程栈信息输出:com.intellij.rt.execution.junit.IdeaTestRunner$Repeater$startRunnerWithArgs$IdeaTestRunner.java$47 线程栈信息输出:com.intellij.rt.execution.junit.JUnitStarter$prepareStreamsAndStart$JUnitStarter.java$242 线程栈信息输出:com.intellij.rt.execution.junit.JUnitStarter$main$JUnitStarter.java$70从结果中我们可以看出, 栈顶是Thread的getStackTrace方法,这个很好理解。Thread.currentThread().getStackTrace()[1] 是当前执行查看堆栈信息的方法RabbitMQTest的test2。 栈底是 JUnitStarter的main 方法,然后我们看到实际调用了 org.springframework.test.context.junit4.SpringJUnit4ClassRunner的run 方法。
技术
分享
轩灵
2018-10-11
0
2,031
153
2018-10-09
windows查看path,命令行设置path
以安装Gradle示例说明windows环境下设置环境变量path的方法: C:\Users\BYRON.Y.Y>path PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_144\bin;F:\apache-maven-3.2.5\bin;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Program Files\TortoiseSVN\bin;C:\WINDOWS\System32\OpenSSH\;%CURL_HOME%;%CONSULE_HOME%;E:\111softwares\consul_1.0.7_windows_386;C:\Program Files (x86)\sbt\bin;F:\instroll\python3\Scripts\;F:\instroll\python3\;C:\Users\BYRON.Y.Y\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Microsoft VS Code\bin C:\Users\BYRON.Y.Y>set path=%path%;E:\111softwares\gradle-4.10.2-bin\gradle-4.10.2\bin C:\Users\BYRON.Y.Y>path PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_144\bin;F:\apache-maven-3.2.5\bin;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Program Files\TortoiseSVN\bin;C:\WINDOWS\System32\OpenSSH\;%CURL_HOME%;%CONSULE_HOME%;E:\111softwares\consul_1.0.7_windows_386;C:\Program Files (x86)\sbt\bin;F:\instroll\python3\Scripts\;F:\instroll\python3\;C:\Users\BYRON.Y.Y\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Microsoft VS Code\bin;E:\111softwares\gradle-4.10.2-bin\gradle-4.10.2\bin C:\Users\BYRON.Y.Y> C:\Users\BYRON.Y.Y> C:\Users\BYRON.Y.Y> C:\Users\BYRON.Y.Y>gradle -v ------------------------------------------------------------ Gradle 4.10.2 ------------------------------------------------------------ Build time: 2018-09-19 18:10:15 UTC Revision: b4d8d5d170bb4ba516e88d7fe5647e2323d791dd Kotlin DSL: 1.0-rc-6 Kotlin: 1.2.61 Groovy: 2.4.15 Ant: Apache Ant(TM) version 1.9.11 compiled on March 23 2018 JVM: 1.8.0_144 (Oracle Corporation 25.144-b01) OS: Windows 10 10.0 amd64 C:\Users\BYRON.Y.Y>
默认分类
# windows
轩灵
2018-10-09
0
1,562
136
2018-10-08
SpringBoot多数据源unsatisfied dependency expressed through method 'entityManagerFactoryBuilder...
本来的项目(基于SpringBoot 2.0.5-RELEASE)集成了JPA、mybatis的注解、XML方式访问DB。 后面集成多数据源的时候启动SpringBoot时出现了如下错误: ERROR 32320 — [main] com.zaxxer.hikari.HikariConfig : HikariPool-1 - jdbcUrl is required with driverClassName. Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘entityManagerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method ‘entityManagerFactory’ parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘entityManagerFactoryBuilder’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unsatisfied dependency expressed through method ‘entityManagerFactoryBuilder’ parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘jpaVendorAdapter’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.JpaVendorAdapter]: Factory method ‘jpaVendorAdapter’ threw exception; nested exception is java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:732) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:474) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:859) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:780) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412) at org.springframework.boot.SpringApplication.run(SpringApplication.java:333) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:139) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) … 24 more 后来查看了源码,流程如下: @Bean(name = "test1DataSource") @ConfigurationProperties(prefix = "spring.datasource") @Primary public DataSource testDataSource() { return DataSourceBuilder.create().build(); }进入DataSourceBuilder.create().build(): public T build() { Class<? extends DataSource> type = getType(); DataSource result = BeanUtils.instantiateClass(type); maybeGetDriverClassName(); bind(result); return (T) result; }maybeGetDriverClassName(); 方法: private void maybeGetDriverClassName() { if (!this.properties.containsKey("driverClassName") && this.properties.containsKey("url")) { String url = this.properties.get("url"); String driverClass = DatabaseDriver.fromJdbcUrl(url).getDriverClassName(); this.properties.put("driverClassName", driverClass); } }bind(result) 方法: private void bind(DataSource result) { ConfigurationPropertySource source = new MapConfigurationPropertySource( this.properties); ConfigurationPropertyNameAliases aliases = new ConfigurationPropertyNameAliases(); aliases.addAliases("url", "jdbc-url"); aliases.addAliases("username", "user"); Binder binder = new Binder(source.withAliases(aliases)); binder.bind(ConfigurationPropertyName.EMPTY, Bindable.ofInstance(result)); }因为springboot首推的连接池使用了HikariCP连接池,GET到这个点, HikariDataSource的获取数据库连接的getConnection方法: @Override public Connection getConnection() throws SQLException { if (isClosed()) { throw new SQLException("HikariDataSource " + this + " has been closed."); } if (fastPathPool != null) { return fastPathPool.getConnection(); } // See http://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java HikariPool result = pool; if (result == null) { synchronized (this) { result = pool; if (result == null) { validate(); LOGGER.info("{} - Starting...", getPoolName()); try { pool = result = new HikariPool(this); this.seal(); } catch (PoolInitializationException pie) { if (pie.getCause() instanceof SQLException) { throw (SQLException) pie.getCause(); } else { throw pie; } } LOGGER.info("{} - Start completed.", getPoolName()); } } } return result.getConnection(); }HikariConfig的validate方法 public void validate() { if (poolName == null) { poolName = generatePoolName(); } else if (isRegisterMbeans && poolName.contains(":")) { throw new IllegalArgumentException("poolName cannot contain ':' when used with JMX"); } // treat empty property as null catalog = getNullIfEmpty(catalog); connectionInitSql = getNullIfEmpty(connectionInitSql); connectionTestQuery = getNullIfEmpty(connectionTestQuery); transactionIsolationName = getNullIfEmpty(transactionIsolationName); dataSourceClassName = getNullIfEmpty(dataSourceClassName); dataSourceJndiName = getNullIfEmpty(dataSourceJndiName); driverClassName = getNullIfEmpty(driverClassName); jdbcUrl = getNullIfEmpty(jdbcUrl); // Check Data Source Options if (dataSource != null) { if (dataSourceClassName != null) { LOGGER.warn("{} - using dataSource and ignoring dataSourceClassName.", poolName); } } else if (dataSourceClassName != null) { if (driverClassName != null) { LOGGER.error("{} - cannot use driverClassName and dataSourceClassName together.", poolName); // NOTE: This exception text is referenced by a Spring Boot FailureAnalyzer, it should not be // changed without first notifying the Spring Boot developers. throw new IllegalStateException("cannot use driverClassName and dataSourceClassName together."); } else if (jdbcUrl != null) { LOGGER.warn("{} - using dataSourceClassName and ignoring jdbcUrl.", poolName); } } else if (jdbcUrl != null || dataSourceJndiName != null) { // ok } else if (driverClassName != null) { LOGGER.error("{} - jdbcUrl is required with driverClassName.", poolName); throw new IllegalArgumentException("jdbcUrl is required with driverClassName."); } else { LOGGER.error("{} - dataSource or dataSourceClassName or jdbcUrl is required.", poolName); throw new IllegalArgumentException("dataSource or dataSourceClassName or jdbcUrl is required."); } validateNumerics(); if (LOGGER.isDebugEnabled() || unitTest) { logConfiguration(); } }这个if分支: jdbcUrl = getNullIfEmpty(jdbcUrl); else if (driverClassName != null) { LOGGER.error("{} - jdbcUrl is required with driverClassName.", poolName); throw new IllegalArgumentException("jdbcUrl is required with driverClassName."); }这里要求DataSource的参数存在 jdbcUrl 、以及driverClassName,而我们的配置是: spring.datasource.url=jdbc:mysql://localhost:3306/mypydb spring.datasource.username=root spring.datasource.password=11111111 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource2.url=jdbc:mysql://localhost:3306/mypydb2 spring.datasource2.username=root spring.datasource2.password=11111111 spring.datasource2.driver-class-name=com.mysql.jdbc.Driver所以将url改为 jdbc-url 即可。 spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/mypydb spring.datasource2.jdbc-url=jdbc:mysql://localhost:3306/mypydb2
技术
分享
轩灵
2018-10-08
0
2,094
118
上一页
1
...
14
15
16
...
18
下一页