向servlet注入依赖bean及dao层获取sqlsession

关于spring学习中向控制层servlet注入依赖bean及dao层获取sqlsession遇到的坑做的学习笔记


1.向控制层servlet注入依赖bean

  • 因为servlet不能被spring扫描所以我们需要定义一个基类,并让这个工具类复写HttpServlet 的init 方法撒大苏打
    其中红框内的两行语句是让spring向servlet注入依赖bean的关键代码(使用其中一句就可以)
    SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
    // WebApplicationContextUtils.getWebApplicationContext(getServletContext()).getAutowireCapableBeanFactory().autowireBean(this);
  • 然后只要让需要注入依赖bean的servlet继承这个基类就能让spring注入依赖bean
    *在这里插入图片描述
    需要注意的是你注入的依赖bean必须是spring注解扫描能够扫描到的(必需使用注解)
    在这里插入图片描述

2.dao层获取sqlsession

  • spring核心配置文件中要配置以下内容

在这里插入图片描述
红框部分代码

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"></property> 
	<property name="configLocation" value="classpath:sqlMapconfig.xml"></property>
</bean> 
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
	<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
  • 同样我们也写一个基类

在这里插入图片描述
该基类只定义一个SqlSessionTemplate 的sqlsession 并生成get set方法

private SqlSessionTemplate sqlsession;

**这样我们在需要注入sqlsession 的dao层中继承该基类就能直接获得sqlsession **
在这里插入图片描述
在这里插入图片描述
这里的getSqlsession是我们定义的基类中的getSqlsession

这里百度出来说service注入Controller时要和Sqlsession一样用setter方式注入,其实是不用的

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值