ioc的注解方式 实现bean管理和注入属性

目录

使用注解的两种方式:

配置文件进行注解扫描

 IOC纯注解的方式


1.什么是注解

①:注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)

②:使用注解,注解作用在类上面,方法上面,属性上边

③:使用注解的目的:简化XML配置

2.Spring针对Bean管理中创建对象提供的注解

@Component 普通的类

@Controller 表现层

@Service 业务层

@Repository 持久层

这四个功能都一样写一个就行

使用注解的两种方式:

配置文件进行注解扫描

1、在需要进行管理的类上添加注解 上述任意一种

@Component(value="car") //类似于bean id 的功能

/* <bean id="car" class="Car(全类名)"/> */
/**
 * 组件,作用:把当前类使用IOC容器进行管理,如果没有指定名称,默认使用类名,首字母是小写。
 * car。或者自己指定名称
 **/
@Controller(value="car")
public class car  {
    public void hello() {
        System.out.println("使用注解,方便吧!");
    }
}

2、更改配置文件在ApplicationContext.xml里面

<?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">
   
    <!--开启注解扫描 com.qcby所有的包中的所有的类-->
    <context:component-scan base-package="com.qcby.sevice"/>
</beans>

 注意一下我都car是放在sevice包里面的

3、测试类

@Test
    public void car(){
        //创建spring 工厂
        ApplicationContext ac= new ClassPathXmlApplicationContext("ApplicationContext.xml");
        //获取bean对象
        Car car=(Car) ac.getBean("car");
        //输出
        car.hello();
        
    }

 IOC纯注解的方式

纯注解的方式是微服务架构开发的主要方式,所以也是非常的重要。纯注解的目的是替换掉所有的配置文件。但是需要编写配置类。

1、编写配置类替换之前的xml文件

package com.qcby;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

@Configuration //这是一个配置类

@ComponentScan("com.qcby.sevice")//扫描地址
public class SpringConfig {

}

这个配置类和sevice是同级别的在com.qcby下面,这样更清楚一点毕竟配置类并不属于一个主体内容,其实放在一个包里面也可以运行

2、更改测试类

这个和xml测试类的差别在于 ac= new Annoation...  以及传参(SpringConfig.class)//自己编写的配置类名称不加"";

@Test
    public void car1(){
        ApplicationContext ac= new AnnotationConfigApplicationContext(SpringConfig.class);
        //获取bean对象
        Car car=(Car) ac.getBean("car");
        //输出
    
        car.hello();
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值