嗨,我正在尝试使用HikariCP与Spring连接池.我正在使用jdbcTempLate和JdbcdaoSupport.
这是我的数据源的spring配置文件:
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
<property name="dataSourceClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="dataSource.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="dataSource.user" value="username"/>
<property name="dataSource.password" value="password"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
但不幸的是,生成以下错误消息:
Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.zaxxer.hikari.HikariDataSource]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.zaxxer.hikari.HikariDataSource.<init>()
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何解决这个问题?
我正在尝试在Spring @Configuration类[Database is oracle]中配置HikariCP数据源.但它不起作用.
我在互联网上搜索,发现需要使用构造函数配置HikariCP数据源.我已经尝试了[它在github网页中提到的方式],但它仍然无效.请帮我解决这个问题.
private HikariDataSource dataSource() {
final HikariDataSource ds = new HikariDataSource();
ds.setMaximumPoolSize(100);
ds.setDataSourceClassName("oracle.jdbc.driver.OracleDriver");
ds.addDataSourceProperty("url", "jdbc:oracle:thin:@localhost:1521:XE");
ds.addDataSourceProperty("user", "username");
ds.addDataSourceProperty("password", "password");
ds.addDataSourceProperty("cachePrepStmts", true);
ds.addDataSourceProperty("prepStmtCacheSize", 250);
ds.addDataSourceProperty("prepStmtCacheSqlLimit", 2048);
ds.addDataSourceProperty("useServerPrepStmts", true);
return ds;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Play 2.5构建一个简单的应用程序.为了获得更好的性能,我使用了Akka chunked响应和Java 8 CompletionStage策略.下面是生成分块响应的代码(不使用ComperableFuture时工作正常):
@Singleton
public class AbstractSource {
public Source<ByteString, ?> getChunked(String html) {
return Source.<ByteString>actorRef(256, OverflowStrategy.dropNew())
.mapMaterializedValue(sourceActor -> {
sourceActor.tell(ByteString.fromString(html), null);
sourceActor.tell(new Status.Success(NotUsed.getInstance()), null);
return null;
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
@Singleton
@AddCSRFToken
public class Application extends Controller {
@Inject
private AbstractSource abstractSource;
public CompletionStage<Result> index() {
CompletionStage<Source<ByteString, ?>> source = CompletableFuture.supplyAsync(() ->
abstractSource.getChunked(index.render(CSRF.getToken(request()).map(t ->
t.value()).orElse("no token")).body()
)
);
return source.thenApply( chunks -> ok().chunked(chunks));
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我运行应用程序时,它会抛出以下异常:
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[CompletionException: java.lang.RuntimeException: There is no HTTP Context available from …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用PLay 2和Akka在webapp中实现块响应.但是,不是按块加载响应,而是所有响应都是一次响应.下面是我在控制器中创建块的代码:
/**
*
*/
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import akka.stream.javadsl.Source;
import akka.util.ByteString;
import org.pmw.tinylog.Logger;
import play.cache.CacheApi;
import play.cache.Cached;
import play.filters.csrf.AddCSRFToken;
import play.filters.csrf.CSRF;
import play.libs.Json;
import play.libs.concurrent.HttpExecutionContext;
import play.mvc.Controller;
import play.mvc.Http;
import play.mvc.Http.Cookie;
import play.mvc.Result;
import akka.NotUsed;
import akka.actor.Status;
import akka.stream.OverflowStrategy;
import akka.stream.javadsl.Source;
import akka.util.ByteString;
/**
* @author Abhinabyte
*
*/
@Singleton
@AddCSRFToken
public class GetHandler extends Controller {
@Inject
private CacheApi cache;
@Inject
private HttpExecutionContext httpExecutionContext;
public CompletionStage<Result> index() {
return CompletableFuture.supplyAsync( () ->
Source.<ByteString>actorRef(256, …Run Code Online (Sandbox Code Playgroud) hikaricp ×2
jdbc ×2
spring ×2
akka-stream ×1
java ×1
java-8 ×1
jdbctemplate ×1
sbt ×1
spring-jdbc ×1
spring-mvc ×1