views:

127

answers:

1

I have application that look like below

without spring (prior)

UI-> service --> javabean

p.s: my ui call service (not using DI) and i want to remain this way

new service()

I want my javabean to do DI for certain bean from applicationcontext.xml file. Should i use Applicationcontext.getBean(the ..xml) file in javabean or is there any better way to do it without changing the service layer and only modify the javabean in bold?

+5  A: 

You should look at @Configurable annotation (Tutorial).

The basic idea is that you add this annotation to your bean class. It will then inject any properties as soon as you create a new instance:

@Configurable
public class Person {
    private IPeopleDAO _dao;

    // SNIP

    public save() {
        _dao.save(this);
    }
}

// use it like this
new Person("john", "doe").save();
sfussenegger
With the very large caveat that it uses load-time weaving, which only works in some classloader environments.
skaffman
alternatively can use compile time weaving, but i havent found way to do it on netbeans without maven.
cometta