Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
0d53b9d9
Commit
0d53b9d9
authored
Apr 03, 2014
by
Josh Long
Committed by
Dave Syer
Apr 25, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding initial GridFS integration.
parent
4ffc95dc
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
143 additions
and
45 deletions
+143
-45
GridFsTemplateAutoConfiguration.java
.../autoconfigure/mongo/GridFsTemplateAutoConfiguration.java
+56
-0
MongoProperties.java
...ngframework/boot/autoconfigure/mongo/MongoProperties.java
+56
-45
GridFsTemplateAutoConfigurationTests.java
...configure/mongo/GridFsTemplateAutoConfigurationTests.java
+31
-0
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/GridFsTemplateAutoConfiguration.java
0 → 100644
View file @
0d53b9d9
package
org
.
springframework
.
boot
.
autoconfigure
.
mongo
;
import
com.mongodb.Mongo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.AutoConfigureAfter
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.mongodb.MongoDbFactory
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.SimpleMongoDbFactory
;
import
org.springframework.data.mongodb.gridfs.GridFsTemplate
;
import
org.springframework.util.StringUtils
;
/**
* <P>
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration Auto-configuration} for
* Mongo's {@link com.mongodb.gridfs.GridFS Grid FS} Spring Data's
* {@link org.springframework.data.mongodb.gridfs.GridFsTemplate GridFsTemplate}.
*
* <p>
* You can override which GridFS database is used by specifying {@code spring.data.mongodb.gridFsDatabase},
* otherwise it defaults to the general {@code spring.data.mongodb.database} parameter.
*
* @author Josh Long
*/
@Configuration
@ConditionalOnClass
({
Mongo
.
class
,
GridFsTemplate
.
class
})
@EnableConfigurationProperties
(
MongoProperties
.
class
)
@AutoConfigureAfter
(
MongoTemplateAutoConfiguration
.
class
)
public
class
GridFsTemplateAutoConfiguration
{
@Autowired
private
MongoProperties
mongoProperties
;
@Bean
@ConditionalOnMissingBean
public
MongoDbFactory
mongoDbFactory
(
Mongo
mongo
)
throws
Exception
{
String
db
=
StringUtils
.
hasText
(
this
.
mongoProperties
.
getGridFsDatabase
())
?
this
.
mongoProperties
.
getGridFsDatabase
()
:
this
.
mongoProperties
.
getMongoClientDatabase
()
;
return
new
SimpleMongoDbFactory
(
mongo
,
db
);
}
@Bean
@ConditionalOnMissingBean
public
GridFsTemplate
gridFsTemplate
(
MongoDbFactory
mongoDbFactory
,
MongoTemplate
mongoTemplate
)
{
return
new
GridFsTemplate
(
mongoDbFactory
,
mongoTemplate
.
getConverter
());
}
}
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoProperties.java
View file @
0d53b9d9
...
@@ -16,19 +16,19 @@
...
@@ -16,19 +16,19 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
mongo
;
package
org
.
springframework
.
boot
.
autoconfigure
.
mongo
;
import
java.net.UnknownHostException
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
com.mongodb.DBPort
;
import
com.mongodb.DBPort
;
import
com.mongodb.MongoClient
;
import
com.mongodb.MongoClient
;
import
com.mongodb.MongoClientURI
;
import
com.mongodb.MongoClientURI
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
java.net.UnknownHostException
;
/**
/**
* Configuration properties for Mongo.
* Configuration properties for Mongo.
*
*
* @author Dave Syer
* @author Dave Syer
* @author Phillip Webb
* @author Phillip Webb
* @author Josh Long
*/
*/
@ConfigurationProperties
(
prefix
=
"spring.data.mongodb"
)
@ConfigurationProperties
(
prefix
=
"spring.data.mongodb"
)
public
class
MongoProperties
{
public
class
MongoProperties
{
...
@@ -41,6 +41,9 @@ public class MongoProperties {
...
@@ -41,6 +41,9 @@ public class MongoProperties {
private
String
database
;
private
String
database
;
private
String
gridFsDatabase
;
public
String
getHost
()
{
public
String
getHost
()
{
return
this
.
host
;
return
this
.
host
;
}
}
...
@@ -73,6 +76,14 @@ public class MongoProperties {
...
@@ -73,6 +76,14 @@ public class MongoProperties {
this
.
port
=
port
;
this
.
port
=
port
;
}
}
public
String
getGridFsDatabase
()
{
return
gridFsDatabase
;
}
public
void
setGridFsDatabase
(
String
gridFsDatabase
)
{
this
.
gridFsDatabase
=
gridFsDatabase
;
}
public
String
getMongoClientDatabase
()
{
public
String
getMongoClientDatabase
()
{
if
(
this
.
database
!=
null
)
{
if
(
this
.
database
!=
null
)
{
return
this
.
database
;
return
this
.
database
;
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/GridFsTemplateAutoConfigurationTests.java
0 → 100644
View file @
0d53b9d9
package
org
.
springframework
.
boot
.
autoconfigure
.
mongo
;
import
org.junit.After
;
import
org.junit.Test
;
import
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.gridfs.GridFsTemplate
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
public
class
GridFsTemplateAutoConfigurationTests
{
private
AnnotationConfigApplicationContext
context
;
@After
public
void
close
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
}
}
@Test
public
void
templateExists
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
(
PropertyPlaceholderAutoConfiguration
.
class
,
MongoAutoConfiguration
.
class
,
MongoTemplateAutoConfiguration
.
class
,
GridFsTemplateAutoConfiguration
.
class
);
assertEquals
(
1
,
this
.
context
.
getBeanNamesForType
(
GridFsTemplate
.
class
).
length
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment