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.
- Guice project: https://github.com/google/guice
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);
...
Example
Registered types
JdbcOperationsinterface, implemented by JdbcTemplateLambdaOperationsinterface, implemented by LambdaTemplateTransactionManagerinterface for programmatic transactionsTransactionTemplateinterface for template transactionsConfigurationSessionCustom Mapperinterfaces
Configuration reference
| Key | Description |
|---|---|
| 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 |