Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

[Review] Java Open Source Programming

Book Cover Today I finished reading Java Open Source Programming. It took me one week to read - and I only read about an hour a day. This book is nice to read - you can breeze through 20 pages in no time. I appreciate a quick-read technical book. I enjoyed the simplicity of this book, especially since I'm such a rookie at WebWork, SiteMesh and Mock Objects. I knew most of the Hibernate and XDoclet stuff, but I did manage to pick up a few tricks, and since it's the only book on Hibernate (that I know of), I'll refer to it when I need to do components or proxies. Overall, this book made WebWork and SiteMesh look like great technologies and I'm excited to start using them.

The sample app, PetSoar, continues the "call your persistence layer from your action class" that I've seen in all WebWork sample apps. I still don't know if this is a good idea, but since Actions aren't tied to the web, maybe it is. This means you put your business logic in your controllers (a.k.a. actions). Kinda breaks the whole controllers should only be controllers mantra, but whatever floats your boat. To be honest, in AppFuse, all the Managers (a.k.a. business layer) do is transfer POJOs to ActionForms, and then back again. The Managers are were my business logic should go, but I often find it easier to put it in my actions. I sense a paradigm shift - will the WebWork version of AppFuse only contain a "dao" layer and a "web" layer? Who knows - only time will tell.

One interesting thing I picked up is the different way that Dependency Injection (a.k.a. Inversion of Control) is handled in WebWork compared to how its handled in Spring. In Spring, all you need to do is add a setter (and local variable) to prepare a class for IoC. When using WebWork, you have to create an Interface that has the setter defined, and then your Action must implement that interface. If Spring can do it without an interface, why can't WebWork?

All in all, I enjoyed this book - though it didn't peak my interest as much as J2EE Design and Development. I think that's probably because Spring solves some issues I've had with AppFuse (binding interfaces and implementations), whereas this book doesn't really solve anything for me. As a WebWork newbie though, I do feel this is a good read. I also found myself saying "Wow, that's cool" a fair amount of times (re: SiteMesh and WebWork).

I was disappointed that i18n was not covered at all. I tend to always prepare my Struts apps for i18n (extracting text into a .properties file). However, in most cases, a 2nd translation has never been put in place. So, I bitch about the lack of i18n coverage, and I write my apps with i18n in mind, but it's never been used in any of the apps I've written. Maybe I should just quit doing i18n in my apps - it'd probably save an hour a week of development time.

So it comes down to this - if you don't know anything about WebWork, this book is a worthwhile read. If you know WebWork - I'm sure you'll be disappointed because it is written for newbies.

Next up, upgrading my programmer certification to 1.4 with the Sun Certified Programmer & Developer for Java 2 Study Guide.

Posted in Java at Jan 25 2004, 01:29:19 PM MST 7 Comments
Comments:

in reguards to the spring vs xwork ioc, in spring afaik you need to just have the setter+local variable AND have a definition in xml to get it to wire the dependancy where as in xwork you just implement the interface and itll automagically handle wire the dependancy in an action (although you still need to tell xwork about it via components.xml)

Posted by Francisco Hernandez on January 26, 2004 at 07:11 AM MST #

One thing to think about re: XWork actions calling persistence layers is that XWork actions aren't controllers - they're closer to model than controller, and they're not web-centric, which means they *are* literally your business component.

Posted by Unknown on January 26, 2004 at 11:53 AM MST #

<em>> XWork actions aren't controllers.</em>

Mr. Anonymous: This is the argument that most WebWork/XWork folks use - but if this is true, then how can WebWork be an MVC Framework. It has no C in it's philosophy. ;-) Or are you saying that the M and the C are handled by the same class?

Posted by Matt Raible on January 26, 2004 at 12:51 PM MST #

!I've used the book as the basis for my first real java webapp. It's made it so easy to understand what is going on, compared to other books I've looked at, mainly Struts ones. I have found that there is a lot of minor errors in the source code sections of the book, things like saying that this code is a section from xxx.java file but then having 'class yyy' in the text and having 'log.error(...' without setting up the rest of the logging system. A bit annoying and avoided by actually getting a non-pro developer to really type in the stuff and follow the book. Saying that, it made me have to actually think about what I was typing in and sort out the problems!

Posted by Rick Lawson on January 26, 2004 at 01:07 PM MST #

Good luck with your next book (very good). If you are up for some mock-exams then have a look on our website. This will point out directly your weaknesses (if any) and strengths.

Posted by Thomas De Vos on January 26, 2004 at 02:12 PM MST #

You may be interested to know that Gavin King is working on a Hibernate book for Manning. You can see it mentioned in passing at: http://blog.hibernate.org/cgi-bin/blosxom.cgi/2004/01/27#perf-problems

Posted by Koz on January 27, 2004 at 08:41 AM MST #

[Trackback]

<table align="left"><tr><td><img src="http://www.samjdalton.com/pebble/images/java_opensource.jpg" align="left" width="111" height="140" border="0"/></td></tr></table> Boug...

Posted by import java.*; Sam Dalton's Blog on March 08, 2004 at 05:15 PM MST #

Post a Comment:
  • HTML Syntax: Allowed