@Configuration public abstract class AbstractCouchbaseDataConfiguration extends Object
Constructor and Description |
---|
AbstractCouchbaseDataConfiguration() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
abbreviateFieldNames()
Set to true if field names should be abbreviated with the
CamelCaseAbbreviatingFieldNamingStrategy . |
protected void |
configureRepositoryOperationsMapping(RepositoryOperationsMapping mapping)
In order to customize the mapping between repositories/entity types to couchbase templates,
use the provided mapping's api (eg. in order to have different buckets backing different repositories).
|
protected abstract CouchbaseConfigurer |
couchbaseConfigurer() |
CouchbaseMappingContext |
couchbaseMappingContext()
Creates a
CouchbaseMappingContext equipped with entity classes scanned from the mapping base package. |
CouchbaseTemplate |
couchbaseTemplate()
Creates a
CouchbaseTemplate . |
CustomConversions |
customConversions()
Register custom Converters in a
CustomConversions object if required. |
protected FieldNamingStrategy |
fieldNamingStrategy()
Configures a
FieldNamingStrategy on the CouchbaseMappingContext instance created. |
protected Consistency |
getDefaultConsistency()
Configures the default consistency for generated
view queries
and N1QL queries in repositories. |
protected Set<Class<?>> |
getInitialEntitySet()
Scans the mapping base package for classes annotated with
Document . |
protected String |
getMappingBasePackage()
Return the base package to scan for mapped
Document s. |
IndexManager |
indexManager()
Register an
IndexManager bean that will be used to process ViewIndexed ,
N1qlPrimaryIndexed and N1qlSecondaryIndexed annotations on repositories
to automatically create indexes. |
MappingCouchbaseConverter |
mappingCouchbaseConverter()
Creates a
MappingCouchbaseConverter using the configured couchbaseMappingContext() . |
RepositoryOperationsMapping |
repositoryOperationsMapping(CouchbaseTemplate couchbaseTemplate)
Creates the
RepositoryOperationsMapping bean which will be used by the framework to choose which
CouchbaseOperations should back which CouchbaseRepository . |
TranslationService |
translationService()
Creates a
TranslationService . |
String |
typeKey()
Determines the name of the field that will store the type information for complex types when
using the
mappingCouchbaseConverter() . |
protected abstract CouchbaseConfigurer couchbaseConfigurer()
@Bean(name="couchbaseTemplate") public CouchbaseTemplate couchbaseTemplate() throws Exception
CouchbaseTemplate
.
This uses mappingCouchbaseConverter()
, translationService()
and getDefaultConsistency()
for construction.
Additionally, it will expect injection of a ClusterInfo
and a Bucket
beans from the context (most
probably from another configuration). For a self-sufficient configuration that defines such beans, see
AbstractCouchbaseConfiguration
.Exception
- on Bean construction failure.@Bean(name="couchbaseRepositoryOperationsMapping") public RepositoryOperationsMapping repositoryOperationsMapping(CouchbaseTemplate couchbaseTemplate) throws Exception
RepositoryOperationsMapping
bean which will be used by the framework to choose which
CouchbaseOperations
should back which CouchbaseRepository
.
Override configureRepositoryOperationsMapping(RepositoryOperationsMapping)
in order to customize this.Exception
protected void configureRepositoryOperationsMapping(RepositoryOperationsMapping mapping)
mapping
- the default mapping (will associate all repositories to the default template).public String typeKey()
mappingCouchbaseConverter()
.
Defaults to .@Bean(name="couchbaseMappingConverter") public MappingCouchbaseConverter mappingCouchbaseConverter() throws Exception
MappingCouchbaseConverter
using the configured couchbaseMappingContext()
.Exception
- on Bean construction failure.@Bean(name="couchbaseTranslationService") public TranslationService translationService()
TranslationService
.@Bean(name="couchbaseMappingContext") public CouchbaseMappingContext couchbaseMappingContext() throws Exception
CouchbaseMappingContext
equipped with entity classes scanned from the mapping base package.Exception
- on Bean construction failure.@Bean(name="couchbaseCustomConversions") public CustomConversions customConversions()
CustomConversions
object if required. These
CustomConversions
will be registered with the mappingCouchbaseConverter()
and
couchbaseMappingContext()
. Returns an empty CustomConversions
instance by default.@Bean(name="couchbaseIndexManager") public IndexManager indexManager()
IndexManager
bean that will be used to process ViewIndexed
,
N1qlPrimaryIndexed
and N1qlSecondaryIndexed
annotations on repositories
to automatically create indexes. By default, since such automatic creations are discouraged in
production envrironment, the configuration will assume the worst and will ignore these annotations.
If you are sure this configuration used in a context where such automatic creations are desired (eg.
you want automatic index creation in Dev, just not in Prod, and this configuration is the Dev one),
override the bean and use the IndexManager.IndexManager()
constructor (or
IndexManager.IndexManager(boolean, boolean, boolean)
constructor with appropriate flags set to true to
activate).protected Set<Class<?>> getInitialEntitySet() throws ClassNotFoundException
Document
.ClassNotFoundException
- if initial entity sets could not be loaded.protected String getMappingBasePackage()
Document
s. Will return the package name of the configuration
class (the concrete class, not this one here) by default.
So if you have a com.acme.AppConfig
extending AbstractCouchbaseConfiguration
the base package
will be considered com.acme
unless the method is overridden to implement alternate behavior.
Document
classes or null to not enable scanning for
entities.protected boolean abbreviateFieldNames()
CamelCaseAbbreviatingFieldNamingStrategy
.protected FieldNamingStrategy fieldNamingStrategy()
FieldNamingStrategy
on the CouchbaseMappingContext
instance created.protected Consistency getDefaultConsistency()
view queries
and N1QL queries
in repositories.consistency
to apply by default on generated queries.Copyright © 2011–2018 Pivotal Software, Inc.. All rights reserved.