栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringDay02,(IOC)注解注入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringDay02,(IOC)注解注入

 【1】IOC的注解注入,和xml,bean标签注入的作用是一样的,只不过注解注入更加的简洁

 【2】首先,我们需要改造bean.xml,需要对约束进行改变,不然bean.xml不支持注解。

          约束代码


        然后我们需要加入一个context标签,来告诉Spring,我们需要在哪些包下的类用到注解注入方法,黄色字体部分,就是我们要扫描的包

 

【3】这时,我们就完成了注解的配置,可以在我们需要的类上,添加注解

        1.@Component标签

                        位置:写在类前面

                        作用:把当前类存入到Spring容器中,和xml文件中的bean标签作用一样

                        属性:value:用于指定注解类的ID,当我们不写时就是类名(首字母小写)

        2.@Controller:等同与Component标签,多数用于表现层

        3.@Service:等同与Component标签,多数用于逻辑层

        3.@Repository:等同与Component标签,多数用于持久层dao

        234标签的作用是为了让我们的代码更加的清晰,可以一目了然。

        

         这里注解方法,也可以用scope,只是scope从属性变成了标签,属性值还是singleton和prototype

         当我们写完了这段代码,就表示该类,已经被加载到Spring容器中了

【4】  获取Spring容器中的对象,我们之前用xml配置的时候,注入需要用bean标签下的property标签(set注入)或者contructor-arg(构造注入)。

          注解的注入

          1.@Autowired

                        作用:自动按照类型注入,前提是,容器中只能有一个对应的类,它才能找到

                        书写位置:可以是变量上,也可以是方法上

                        细节:不需要set方法了

          2.@Qualifier

                        要和Autowired一起使用,

                        作用:在 Autowired的基础上,按照类的名称注入,也就是上面我们把类用注解的方式放入Spring容器中给类起的ID。

          3.@Resource,不需要任何注解的配合,需要输入bean的ID。

             这样就注入了ID为accountDaoImpl2的类。

@Resource(name = "accountDaoImpl2")
private IAccountDao accountDao=null;

          4.@Value

                        作用:用于String类型和基本类型的注入

                        属性:value,用于指定数据的值,可以用Spring的spel表达式,

                         spel=${表达式}

【5】当这些都准备好了之后,我们就可以测试下我们的IOC注入

         这里写法和xml配置的IOC一样,利用ContextApplication

ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
IAccountService accountService = (IAccountService) ac.getBean("as1");
accountService.saveAccount();

           这里会有人会问,能不能把xml文件完全消除,答案是当然可以。

【6】完全消除XML配置文件,的注解注入方法

         首先我们需要解决,注解方法在xml配置文件中扫描包的代码

         @ComponentScan,这个标签就是解决这个问题的。其次我们还需要一个能代替bean.xml的配置类,

         @Configuration是代表让这个类成为配置类。

         然后@PropertySource是把我们的jdbc文件导入,这样我们就可以把下面jdbc的配置,换成利用参数代替,然后用@Value注解的el表达式给参数传参,这里我没用这个方法。

        @Bean的作用和xml中的bean标签作用一致,把我们的QueryRunner数据源存入到Spring容器中

         到此,我们的无xml配置文件的注解方式就结束了,至于什么时候用注解,什么时候用XML配置文件注入,完全可以根据以后公司的导向或者是项目的情况。

        

         当我们的配置类,写完之后就可以在持久层,调用QueryRunner了。

         同理,service中也可以用注解传入dao层。

         表现层的使用方法还是一样,利用ContextApplication,来获取service层中的方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号