美文网首页
spring基于注解的ioc

spring基于注解的ioc

作者: 茶酒qqq | 来源:发表于2020-01-20 20:55 被阅读0次

    spring基于注解的ioc

    教学内容

    1. Spring中的ioc常用注解

    2. 案例使用xml和注解方式实现单标的CRUD操作

      持久层技术选择:dbutils

    3. 改造基于注解的ioc案例,使用纯注解方式实现

      spring 的一些新注解使用

    4. spring和Junit的整合

    使用注解前配置xml

    core搜索xmlns:context就有了

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
        <context:component-scan base-package="com.chajiu.service"></context:component-scan>
    </beans>
    

    四个对应-注解和xml标签对应

    • 用于创建对象:同<bean>

      • @Component:把当前类对象存入spring容器

        • 属性value:指定key名,不写默认key为小写类名。

          @Component(value = "accountServicelmpl")或者

          @Component("accountServicelmpl")

      • @Controller:用于表现层

      • @Service:用于业务层

      • @Repository:用于持久层

      • 以上三个注解和@Component的作用和属性一模一样

      • 他们是spring框架为我们提供三层的明确注解,使我们对三层结构更加清晰

    • 用于注入数据:同<property>

      • @Autowired
        • 自动按照类型注入,只要容器中有唯一的一个bean类型和要注入的变量类型相匹配,就可以注入成功

        • 出现位置:变量上或者方法上

        • image-20200118090010734.png
        • 如果有多个类型匹配时,按照注入的变量的名称匹配,再不唯一就报错

      • @Qualifier
        • 在按照类型注入的基础上按照名称注入,给类成员注入时不能单独使用(必须配合@Autowired),但是给类方法注入可以单独使用
        • 属性value,指定bean的id
      • @Resource
        • 作用:直接按照bean的id注入,可以独立使用
        • 属性:name,指定bean的id
      • 上述注解只能用于注入Bean类型,无法注入基本数据类型和String
      • 且集合类型必须通过xml来实现
      • @Value
        • 用于注入基本数据类型和String
        • 属性value:用于指定数据的值,可以使用Spring中的SpEL(Spring的el表达式)
          • SpEL写法:${表达式}
    • 用于改变作用范围:同<bean>中的scope属性一样

      • @Scope

        • 指定bean的作用范围,写在类前

        • 属性:value,指定范围,常用取值:singletonprototype

        • @Component(value = "accountService")
          @Scope("prototype")
          public class AccountServicelmpl implements IAccountService {
          
    • 和生命周期相关:同<bean>中的init-methoddestroy-method一样

    相关文章

      网友评论

          本文标题:spring基于注解的ioc

          本文链接:https://www.haomeiwen.com/subject/akhszctx.html