Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
October 10, 2022 11:54 pm GMT

Spring @Autowired tricks

Introduction

As we know Spring framework is a dependency injection framework that keep tracks from your classes and whenever you want an instance spring will provide that for you.

By Annotating your classes with @Service or @Component Spring at runtime will create instances from these classes and wherever you want an object from them you just use @Autowired so that spring knows that you need an object here.

Some Magic

But there is some tricks may add value to your code or make code cleaner , as image below we have IMove interface with 2 different implementations for it.

Image description

you can use @Autowired with List of IMove and spring will get all interface implementations and put them into the list , or you can use Map of String and IMove and spring will construct a map with service name as a key and an object of this service as a value like below image.

Image description

You can benefit from this for an example if you have a multiple validation logic over some value you can use @Autowired with List trick to group validators based on type and fire them in a much clean way like below images.

Image description

Image description

Or in a different way you can use Map to fire specific logic based in some parameter value like below image.

Image description

Notes

  • just be careful when you have this setup and try in inject one object from the interface , application will not run because Spring will be confused as it will not know which implementation have to use to fulfill this injection , you can solve this situation with @primary or @Qualifier likethis.

Image description

  • we made our examples with field injection and @Autowired but it works as well with constructor injection like below and this is recommended.

Image description


Original Link: https://dev.to/smuhammed/spring-autowired-tricks-1d3a

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To