Created
October 18, 2012 10:40
-
-
Save SpOOnman/3910934 to your computer and use it in GitHub Desktop.
Inconsistent Dependency Injection to domain classes with Grails
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Book { | |
def libraryService | |
String author | |
String title | |
int pageCount | |
Book() { | |
println("Finished constructor Book()") | |
} | |
Book(String author) { | |
this() | |
this.@author = author | |
println("Finished constructor Book(String author)") | |
} | |
Book(String author, String title) { | |
super() | |
this.@author = author | |
this.@title = title | |
println("Finished constructor Book(String author, String title)") | |
} | |
Book(String author, String title, int pageCount) { | |
this.@author = author | |
this.@title = title | |
this.@pageCount = pageCount | |
println("Finished constructor Book(String author, String title, int pageCount)") | |
} | |
void logInjectedService() { | |
println(" Service libraryService is injected? -> $libraryService") | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class BookController { | |
def index() { | |
constructAndExamineBooks() | |
} | |
static constructAndExamineBooks() { | |
println("Started constructAndExamineBooks") | |
Book book1 = new Book().logInjectedService() | |
Book book2 = new Book("foo").logInjectedService() | |
Book book3 = new Book("foo", 'bar').logInjectedService() | |
Book book4 = new Book("foo", 'bar', 100).logInjectedService() | |
Book book5 = new Book(author: "foo", title: 'bar') | |
println("Finished constructor Book(Map params)") | |
book5.logInjectedService() | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class LibraryService { | |
def serviceMethod() { | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Started constructAndExamineBooks | |
Finished constructor Book() | |
Service libraryService is injected? -> eu.spoonman.refaktor.LibraryService@2affcce2 | |
Finished constructor Book() | |
Finished constructor Book(String author) | |
Service libraryService is injected? -> eu.spoonman.refaktor.LibraryService@2affcce2 | |
Finished constructor Book(String author, String title) | |
Service libraryService is injected? -> null | |
Finished constructor Book(String author, String title, int pageCount) | |
Service libraryService is injected? -> null | |
Finished constructor Book() | |
Finished constructor Book(Map params) | |
Service libraryService is injected? -> eu.spoonman.refaktor.LibraryService@2affcce2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment