Implementing the AdviceBean as a stateFUL bean
So far, the AdviceBean we’ve written hasn’t needed to be stateful. It doesn’t keep or use any client-specific state, so it doesn’t need a create() method with arguments. But what if we did want to make it a stateful bean? What if the business logic needed to, say, keep a record of the conversation it’s having so that it never gives out the same advice more than once in a session? Even if the choice of an advice string is purely random, if you want to ensure the advice isn’t repeated during a session, you’ll have to keep track of it in an instance variable.
And you might have other changes, too, like making the create methods take arguments that contain the type of advice the client is looking for, or some other kind of preference. In that case, each time the client made a method call, you’d want to check the status of that client-supplied creation initialization preference, and tailor your advice based on the value set during the bean’s ejbCreate(). Later in the book, we’ll look at a more elaborate version of this AdviceBean, but for now, we’ll make just a subtle change to make the bean stateful.
Brain Power
You know that the bean class is going to change, but what about the client and the two interfaces? Do one or more of those have to change? Really think through the implications before you turn the page.
Things you can add if the bean is stateFUL
You can have more than one create method.
The create method can have arguments.
The bean can ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access