spring set注入

1.service层注入DAO

   1)service接口实现层中,定义想要在service中注入得对象,定义成私有变量。

  2)配置applicationContext.xml文件


在bean adminService 中要定义property属性。因为adminService中包含了adminDAO对象。name的值就是在service中定义得变量名,ref值是在配置文件中定义的bean的id。

在bean adminDAO中一定要定义sessionFactory属性,同时在adminDAO类中也要定一sessionFactory对象,以获取session对象。

这样子就设置OK了。tomcat在启动时会自动调用set方法进行注入。

要注意将对象交给spring容器管理后,就不能在手动new实例,否则用手动new出来的实例来调用其对象时会报空指针异常。举个例子,加入我在工程得其他地方手动new了一个adminService对象,然后用这个对象去调方法,而这个方法中又需要adminDAO对象时,adminDAO这时是为空的。


public class AdminServiceImpl implements AdminService{

    private AdminDAO adminDAO;    

    public void setAdminDAO(AdminDAO adminDAO) {
        this.adminDAO = adminDAO;
    }

    @Override
    public boolean isExit(String username, String password) {
        return adminDAO.isExit(username, password);
    }

    @Override
    public boolean isAdmin(Admin admin) {
        return adminDAO.isAdmin(admin);
    }    
}

在其他地方

AdminService adminService = new AdminServiceImpl();


adminService.isAdmin(admin);

这个时候isAdmin(Admin admin)方法中会报空指针异常。因为adminDAO没有被注入。


2.jsp页面中使用bean

   1)首先导入相应包

     <%@page import="org.springframework.context.ApplicationContext"%>
     <%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>

   2)

    <%
        ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(application);

       想使用得bean类名 变量名 = (bean名) context.getBean("applicationContext.xml中bean的id");

   %>


3.filter中注入

  1)filter声明要注入的对象,设置set方法

  2)配置applicationContext.xml文件

  3)配置web.xml文件


<init-param>

           <param-name>targetBeanName</param-name>  
           <param-value>loginFilter</param-value>

</init-param> 
value值是自己定义得filter的名字。


大功告成微笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值