一点问题..

一点问题..

  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
   <!--开启自动扫描-->
   <context:component-scan base-package="com.imooc.dao"/>
   @Autowired
    private JdbcTemplate jdbcTemplate;

上面这个是不是相当于下面这个?

  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
   ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
        
       JdbcTemplate jdbcTemplate=(JdbcTemplate)applicationContext.getBean("jdbcTemplate");


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好

1、如果使用注解,例如@Autowired 注入的时候就用使用以上注解。我们只有保证这个类是交给spring管理,并且让spring容器初始化一下,才能使用。


如果使用如下这种方式就不用加以上注解,Spring Bean的时候,老师就是使用的这种方式。

http://img1.sycdn.imooc.com//climg/5f3ce056098882c707350226.jpg

例如:

http://img1.sycdn.imooc.com//climg/5f3ce0a30939f3a112010263.jpg

这个过程就是在初始化spring容器。

http://img1.sycdn.imooc.com//climg/5f3ce13409895f7207310056.jpg

2、

其实测试类就是,比如,我们就是想写个demo类,去测试这个service,dao等是否正确,而不涉及业务的,就可以理解为测试类,尤其用@Test方法的,都是为了测试一下我们写的方法对不对

,其他的,例如service ,dao,controller 它都是涉及业务的,在使用过程中,都通过注解交给spring管理了,我们这个就不称之为测试类了。同学可以称之为其它类,或者其他的都可以。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕阿莹 2020-08-17 19:38:22

同学你好,

是一样的,但是有个前提是注入JdbcTemplate 的这个类,要交给spring管理,并让spring容器进行了初始化,

如果是测试类:要有如下部分注解:

http://img1.sycdn.imooc.com//climg/5f3a6b9e092a1c2906140098.jpg

如果是Dao类,要在类上加@Repository
其他类同理。需要交给spring管理的前提下,它们的作用是一样的。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕标0359786 #1
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean>这一段xml不就是交给spring管理吗?所以老师的意思是,如果我在xml对一个类配置了自动扫描,我 @Autowired private JdbcTemplate jdbcTemplate;就可以直接调用他的方法,如果是在测试类就要加你说的红框的配置是吗?那为什么测试类就要加红框的配置,而我在一般的类的方法里面就不需要?
    2020-08-19 16:00:40
  • 好帮手慕阿莹 回复 提问者 慕标0359786 #2
    同学你好,老师说“前提是注入JdbcTemplate 的这个类,要交给spring管理”的意思是,例如老师截图中的SpringDemo6 这个类,要交给spring管理,因为只有交给spring管理了,才能使用spring中的bean。 一般的类我们都会要么加上@Controller或者@service等交给spring管理,而测试类,我们就可以通过上边的这个注解,交给spring管理,让spring先把需要管理的类实例化一下。 所以,在这个前提一下,这两段代码的作用是一样的。 祝学习愉快。
    2020-08-19 16:06:49
  • 提问者 慕标0359786 回复 好帮手慕阿莹 #3
    那测试类就是包含@Test的方法的类叫测试类?其他的都是一般的类?所以测其他的类只要配置了自动扫描,加个@Autowired都会生成对应的对象,然后直接调用他的方法?我的理解对吗?
    2020-08-19 16:12:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师