Spring has come up MailSenderImpl class whichused to send mail from Spring , But you need to inject properties from spring bean which is very important .the rest will be handled by spring itself . and also make sure that your dependency injection is properly setup . Spring is shuch a sophisticated Framework which is giving vey less code to do major tasks .
OrderManagerImpl
--------------------------
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
public class OrderManagerImpl implements OrderManager {
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender;
}
public void setMessage(SimpleMailMessage message) {
this.message = message;
}
private MailSender mailSender;
private SimpleMailMessage message;
@Override
public void placeOrder(Order order) {
// TODO Auto-generated method stub
SimpleMailMessage msg=new SimpleMailMessage(this.message);
msg.setTo(order.getCustomer().getEmail());
msg.setText("Dear "+order.getCustomer().getFirstName()+" "+order.getCustomer().getLastName()+","+
"Thank you for placing order. Your Order Number is "+order.getOrderNumber());
try{
mailSender.send(msg);
}catch(MailException me){System.out.println(me.getMessage());}
}
}
Order.java
-------------
public class Order {
private Customer customer;
private String orderNumber;
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
Customer.java
-------------------
import java.io.Serializable;
public class Customer implements Serializable {
private String firstName;
private String lastName;
private String email;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
config xml
-------------
true
true
OrderManager.java
---------------------------
public interface OrderManager {
public void placeOrder(Order order);
}
|
Comments