See the following example using component annotation:
Triangle.java
package com.dineshonjava.sdnext.componentstreatypeannotation.tutorail; import javax.annotation.Resource; import org.springframework.stereotype.Component; @Component public class Triangle { private Point pointA; private Point pointB; private Point pointC; /** * Using @Resource annotation for wiring with bean dependency * @param pointA the pointA to set */ @Resource public void setPointA(Point pointA) { this.pointA = pointA; } /** * Using @Resource annotation for wiring with bean dependency * @param pointB the pointB to set */ @Resource public void setPointB(Point pointB) { this.pointB = pointB; } /** * Using @Resource annotation for wiring with bean dependency * @param pointC the pointC to set */ @Resource public void setPointC(Point pointC) { this.pointC = pointC; } public void draw() { System.out.println("Drawing Triangle"); System.out.println("PointA is ("+pointA.getX()+", "+pointA.getY()+")"); System.out.println("PointB is ("+pointB.getX()+", "+pointB.getY()+")"); System.out.println("PointC is ("+pointC.getX()+", "+pointC.getY()+")"); } }
Point.java
package com.dineshonjava.sdnext.componentstreatypeannotation.tutorail; public class Point { private int x; private int y; /** * @return the x */ public int getX() { return x; } /** * @param x the x to set */ public void setX(int x) { this.x = x; } /** * @return the y */ public int getY() { return y; } /** * @param y the y to set */ public void setY(int y) { this.y = y; } }
DrawingApp.java
package com.dineshonjava.sdnext.componentstreatypeannotation.tutorail; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author Dinesh * */ public class DrawingApp { /** * @param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Triangle triangle= (Triangle) context.getBean("triangle"); triangle.draw(); } }
spring.xml
<beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:>Here <context:component-scan/> scan the all classes in the base package given as "com.dineshonjava.sdnext.componentstreatypeannotation.tutorail" which are annotated with the @Component annotation or its specific annotations like @Component, @Repository, @Service & @Controller etc then these classes detect as bean of Spring IoC Container.If every thing is OK then run that application we will get the following output.Output:Jul 14, 2012 8:54:13 PM org.springframework.context.support.AbstractApplicationContext prepareRefreshINFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@ab50cd: startup date [Sat Jul 14 20:54:13 IST 2012]; root of context hierarchyJul 14, 2012 8:54:13 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitionsINFO: Loading XML bean definitions from class path resource [spring.xml]Jul 14, 2012 8:54:14 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletonsINFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1198891: defining beans [pointA,pointB,pointC,center,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,circle,triangle,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchyDrawing Triangle
PointA is (0, 0)
PointB is (-20, 0)
PointC is (20, 0)
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…