DrawingApp.java
package org.yash.watertechsol;
import
org.springframework.context.support.AbstractApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
public class DrawingApp {
public
static void main(String[] args){
AbstractApplicationContext
context = new ClassPathXmlApplicationContext("spring.xml");
Shape
shape = (Shape)context.getBean("circle");
shape.draw();
/*
Params: String code, args-to send dynamic values, locale*/
System.out.println(context.getMessage("greeting",
null, "Default Greeting", null));
}
}
Point.java
package org.yash.watertechsol;
public class Point {
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
Triangle.java
package org.yash.watertechsol;
public class Triangle implements Shape{
private Point pointA;
private Point pointB;
private Point pointC;
public Point
getPointA() {
return pointA;
}
public void setPointA(Point
pointA) {
this.pointA = pointA;
}
public Point
getPointB() {
return pointB;
}
public void setPointB(Point
pointB) {
this.pointB = pointB;
}
public Point getPointC()
{
return pointC;
}
public void setPointC(Point
pointC) {
this.pointC = pointC;
}
public void draw(){
System.out.println("Drawing
Triangle");
System.out.println("Point A
= (" + getPointA().getX()+", "+getPointA().getY()+")");
System.out.println("Point B
= (" + getPointB().getX()+", "+getPointB().getY()+")");
System.out.println("Point C
= (" + getPointC().getX()+", "+getPointC().getY()+")");
}
}
spring.xml
<?xml
version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--
<bean
id="triangle" class="org.yash.watertechsol.Triangle">
<property
name="pointA" ref="pointA"></property>
<property
name="pointB" ref="pointB"></property>
<property
name="pointC" ref="pointC"></property>
</bean>
-->
<!--
<bean
id="circle" class="org.yash.watertechsol.Circle">
<property
name="messageSource" ref="messageSource"></property>
</bean>
-->
<bean id
="pointA"
class="org.yash.watertechsol.Point">
<property name="x"
value="0" />
<property name="y"
value="0" />
</bean>
<bean id
="pointB"
class="org.yash.watertechsol.Point">
<property name="x"
value="-20" />
<property name="y"
value="0" />
</bean>
<bean id
="pointC"
class="org.yash.watertechsol.Point">
<property name="x"
value="0" />
<property name="y"
value="20" />
</bean>
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<value>messages</value>
</property>
</bean>
<context:annotation-config />
<context:component-scan base-package="org.yash.watertechsol"></context:component-scan>
</beans>
Shape.java
package org.yash.watertechsol;
public interface Shape {
public void draw();
}
Circle.java
package org.yash.watertechsol;
import java.util.Locale;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.annotation.processing.Messager;
import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import
org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Component;
@Component
public class Circle implements Shape,
ApplicationEventPublisherAware {
private
Point center;
private
ApplicationEventPublisher publisher;
@Autowired
private
MessageSource messageSource;
@Override
public
void draw() {
//System.out.println(this.messageSource.getMessage("drawing.circle",
null, "Default circle", null));
System.out.println(this.messageSource.getMessage("drawing.point",
new Object[]{center.getX(),center.getY()}, "Default point message",
Locale.ENGLISH));
//System.out.println("Circle:
("+center.getX()+", "+center.getY()+")");
//System.out.println(this.messageSource.getMessage("greeting",
null, "Default Greeting", null));
DrawEvent
drawEvent = new DrawEvent(this);
publisher.publishEvent(drawEvent);
}
public
Point getCenter() {
return
center;
}
@Resource(name="pointC")
public
void setCenter(Point center) {
this.center
= center;
}
public
void setMessageSource(MessageSource messageSource) {
this.messageSource
= messageSource;
}
public
MessageSource getMessageSource() {
return
messageSource;
}
@Override
public
void setApplicationEventPublisher(ApplicationEventPublisher publisher) {
this.publisher
= publisher;
}
}
MyEventListener.java
package org.yash.watertechsol;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@Component
public class MyEventListener implements ApplicationListener
{
@Override
public void
onApplicationEvent(ApplicationEvent event) {
System.out.println(event.toString());
}
public String
toString(){
return "Draw
event occured";
}
}
DrawEvent.java
package org.yash.watertechsol;
import org.springframework.context.ApplicationEvent;
public class DrawEvent extends
ApplicationEvent{
public DrawEvent(Object source) {
super(source);
// TODO
Auto-generated constructor stub
}
}
No comments:
Post a Comment