日期:2014-05-20  浏览次数:20796 次

使用spring的依赖注入问题,请大家指指
大家好,我在使用spring的依赖注入时不好使呢,代码如下:
applicationContext.xml:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com"/>
<property name="javaMailProperties">
<props>
  <prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
<property name="username" value="zhoubao_test"/>
<property name="password" value="zhoubao"/>
</bean>

业务逻辑javabean:
public class UserManagerImpl implements UserManager
private UserDao userDao;
  private MailSender mailSender;

  static Logger logger = null;
public UserManagerImpl(){
logger = Logger.getLogger(this.getClass().getName()+".class");
}
public void setUserDao(UserDao userDao)
{
this.userDao = userDao;
}
public void setMailSender(MailSender mailSender)
{
  this.mailSender = mailSender;
  }
/**
  * 新增用户
  * @param user 新增用户的用户名
  * @param pass 新增用户的密码
  * @param email 新增用户的电子邮件
* @return 新增用户的主键
  */
  public int addUser(String user , String pass , String email) 
throws Exception
{
try
{
User u = new User();
u.setUser(user);
u.setPass(pass);
u.setEmail(email);
userDao.save(u);
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom("zhoubao_test@163.com");
msg.setSubject("注册成功通知");
msg.setTo(email);
msg.setText(
"Dear "
+ user
+ ", 谢谢你注册,您的用户名是: "
+ user+" 密码:"+pass);
logger.info("发送邮件====="+mailSender);
mailSender.send(msg);
logger.info("邮件发送成功");
return u.getId();
}catch(MailException ex){
System.err.println(ex.getMessage());  
logger.error("新增用户时发送邮件出现异常", ex);
throw new Exception("新增用户时发送邮件出现异常");
} catch (Exception e)
{
e.printStackTrace();
logger.error("新增用户时出现异常", e);
throw new Exception("新增用户时出现异常");
}
}
===========================
logger.info("发送邮件====="+mailSender);打印出来是:
2008-08-25 09:24:09,125 INFO (com.zb.service.impl.UserManagerImpl.class:101) - 发送邮件=====null
为什么会是null呢? 请大家指教。

------解决方案--------------------
依赖注入,就是在你的bean生成的时候,往你的属性里真正的放入一个对象..不注入,就是只声明了,而没有new