Day 3 of The Spring Experience is now over and I'm officially done being a speaker for the week.
I started the day in Rod Johnson's "Testing with Spring" talk. It was a really good talk. And Rod emphasized what I've been saying all along: Spring shouldn't be part of unit-testing. By writing your code as dependency-injected POJOs, you enable them to be tested more easily, but Spring itself shouldn't be involved in unit-testing. But there are several Spring-provided mock implementations that make unit-testing a bit easier. he also talked about the role of other types of testing. But, to be honest, I was only paying half-attention, because I was double-checking my "Service-Oriented Spring" examples to be sure that they'd be ready.
In the 2nd session of the day, I gave my "Service-Oriented Spring" presentation. I think it went rather well. As some of you may recall, it was a disaster when I gave the same presentation in Austin earlier this year, but this time went a lot more smoothly. Of course, the session evals that I pick up from Jay tomorrow will tell me if I'm right about it going well.
After lunch I sat on the expert panel. I enjoy the opportunity to sit on these panels, but more often than not the crowd asks questions that I have no insight into. Many of the questions centered around future plans for Spring, about which I (not being a member of the Spring team) have nothing to offer. So I sat mostly silent on the panel. I've been asked plenty of great questions in the hallway...where were those questions when I'm on the panel?
After the expert panel, I was exhausted, so I came back to my room to rest before the last session of the day.
During the last session, I presented my "A Few of my Favorite Frameworks" talk. This is the first time I've done this presentation, so I wasn't sure how it'd go. I think it went rather well. Again, the evals will tell the final story.
After dinner Rod Johnson presented another keynote and was joined by Adrian Colyer. Together they stressed the importance of AOP in a POJO-based platform. In short, Adrian has brought a lot of AOP value to the Spring project and there's going to be some really good AOP stuff in Spring 2.0.
Adrian also talked a bit about getting away from anemic domain objects (that is, domain objects that are nothing but data holders). The idea is that if domain objects were responsible for their own functions, the service layer could be made skinnier and the domain objects could be more OO. But the problem is that domain objects are typically instantiated and managed external to Spring (eg, Hibernate). So, how can Spring inject things like DAOs into domain objects if Spring isn't instantiating them? Well, in Spring 2.0, using AOP, you'll be able to declare that certain objects will injected with dependencies post-instantiation, regardless of how they are instantiated. This, when you really think about it, is some really cool stuff. I'm looking forward to trying this out.
Tomorrow I attend two of three sessions before heading back to the airport. Which sessions I actually attend will be a gametime decision. But I'm done with my own sessions, so I'm finally going to be able to take it easy and enjoy the rest of the conference.