全注解开发

dao层交给容器管理的注解@Resposity
注解的作用:简化代码,以低耦合的进行使用(解耦)
@Target表示对谁有效
@Retention:在什么时候有效

@autowired默认按照类型注入,如果要想按照名字进行注入那么就要在加一个注解 @Qualifier(“名字”)(一般不写)

在这里插入图片描述

Spring当中通过beanfactory接口进行创建对象;但是在加载第三方框架的时候使用的是factorybean(即在执行业务的时候);


 @Test
    public void test01(){
    //通过此方式加载配置文件
        ApplicationContext context =
                new ClassPathXmlApplicationContext("application_1.xml");

//如果讲配置文件改为配置类
/**
 ApplicationContext context =
                new AnnotationConfigApplicationContext(SpringConfig.class);
*/
         /**通过类型进行获取
          UserController userController = context.getBean(UserController.class);*/
          
        //通过名字进行注入
        UserController userController =
                (UserController) context.getBean("userController");
        userController.addUser();
    }


Spring当中通过beanfactory接口进行创建对象;但是在加载第三方框架的时候使用的是factorybean(即在执行业务的时候);

简化配置文件,有配置类进行代替

在配置类中加上@Configuration注解即可说明这是一个配置类;
如果注解中有value属性,那么可以省略包扫描注解@Mapperscan(“路径”)

1.6 Spring注解模式执行过程

1).当程序启动Spring容器时 AnnotationConfigApplicationContext 利用beanFactory实例化对象
2).根据配置类中的包扫描开始加载指定的注解(4个). 根据配置文件的顺序依次进行加载

在这里插入图片描述

3).当程序实例化Controller时,由于缺少Service对象,所以挂起线程 继续执行后续逻辑.
当构建Service时,由于缺少Dao对象,所以挂起线程 继续执行后续逻辑.
当实例化Dao成功时,保存到Spring所维护的Map集合中. 执行之前挂起的线程.
所以以此类推 所有对象实现封装.最终容器启动成功

在这里插入图片描述

4). 根据指定的注解/注入指定的对象.之后统一交给Spring容器进行管理.最终程序启动成功.

1.5.1 接口多实现类情况说明

原则: Spring中规定 一个接口最好只有一个实现类.
业务需求: 要求给UserService接口提供2个实现类.

则使用@qualify的名字必须唯一

注入两个实现类

请添加图片描述

Spring管理数据的注解@bean

@Bean作用
通过该注解,可以将业务数据实例化之后,交给Spring容器管理. 但是@Bean注解应该写到配置类中.

Spring动态获取外部数据

编辑properties文件

properties文件里不能写name属性,通过名字(name)属性写成username

要想获取properties文件中的属性的值则需要加//@PropertySource 作用: 加载指定的pro配置文件 将数据保存到Spring容器中
encoding:指定字符集编码格式
@PropertySource(value = “classpath:/user.properties”,encoding = “UTF-8”)

//@Value("user.id")在Spring容器中查找key=user.id的数据.通过{user.id}") 在Spring容器中查找key=user.id的数据.通过user.id")Springkey=user.id.{} 进行触发 ,从容器中的值存入到我们的属性; @Value("${user.id}")

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值