Skip to main content

3.6 Guice Integration

Hint

This article is generated by AI translation.

What is Guice

Guice is Google’s lightweight dependency injection library. Spring offers DI plus many other features; if you just need DI, Guice is a good fit.

dbvisitor-guice Features

  • Auto-configured data sources
  • Annotation-based transactions
  • Mapper interface injection
  • Multiple data sources

How to use

First add the dependency, current version: 6.4.0

Maven Dependencies
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor-guice</artifactId>
<version>latest version</version>
</dependency>
Use HikariCP
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
Configuration
# using HikariCP
dbvisitor.jdbc-ds=com.zaxxer.hikari.HikariDataSource
dbvisitor.jdbc-ds.jdbc-url=jdbc:mysql://127.0.0.1:13306/devtester?allowMultiQueries=true
dbvisitor.jdbc-ds.username=root
dbvisitor.jdbc-ds.password=123456
dbvisitor.jdbc-ds.minimum-idle=5
dbvisitor.jdbc-ds.maximum-pool-size=12
dbvisitor.jdbc-ds.max-lifetime=1200000
dbvisitor.jdbc-ds.auto-commit=true
dbvisitor.jdbc-ds.connection-timeout=20000
dbvisitor.mapper-locations=classpath:dbvisitor/mapper/*.xml
dbvisitor.mapper-packages=net.hasor.dbvisitor.test.dao
Inject a Mapper
public class ServiceTest {
@Inject
private UserMapper userMapper;
...
}
Start Guice
// Load configuration
Properties properties = new Properties();
properties.load(ResourcesUtils.getResourceAsStream("jdbc.properties"));

// Initialize Guice and load the DbVisitorModule
Injector injector = Guice.createInjector(new DbVisitorModule(properties));

// Enjoy
ServiceTest service = injector.getInstance(ServiceTest.class);
...

Registered types

  • JdbcOperations interface, implemented by JdbcTemplate
  • LambdaOperations interface, implemented by LambdaTemplate
  • TransactionManager interface for programmatic transactions
  • TransactionTemplate interface for template transactions
  • Configuration
  • Session
  • Custom Mapper interfaces

Configuration reference

KeyDescription
dbvisitor.mapper-locations可选 Locations of Mapper XML files; default dbvisitor/mapper/*.xml
dbvisitor.mapper-packages可选 Packages to scan for Mapper interfaces; separate multiple with ,
dbvisitor.mapper-disabled可选 true/false to disable Mapper interfaces discovered via dbvisitor.mapper-packages; default false. Set true if conflicts arise.
dbvisitor.marker-annotation可选 Annotation that marks an interface as a Mapper; default net.hasor.dbvisitor.mapper.MapperDef
dbvisitor.marker-interface可选 Interface that marks an interface as a Mapper; default net.hasor.dbvisitor.mapper.Mapper
dbvisitor.auto-mapping可选 Automatically map all fields to columns; true = auto, false = require @Column
dbvisitor.camel-case可选 Convert table/column names using camel-case to underscore
dbvisitor.use-delimited可选 Force identifier quoting for table/column/index names (e.g., when names are keywords); default false
dbvisitor.case-insensitive可选 Case-insensitive table/column names; default true
dbvisitor.ignore-nonexist-statement可选 Ignore missing mappings when binding Mapper methods to XML; default false (throws)
dbvisitor.dialect可选 Default database dialect