spring之使用注解操作bean

一、注解是什么?

从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。
1.1创建bean的注解
(1)@Component
(2)@Service
(3)@Controller
(4)@Repository

  • 上面四个注解功能是一样的,都可以用来创建 bean 实例
    1.2注入属性的注解
    (1)@Autowired:根据属性类型进行自动装配
    (2)@Qualifier:根据名称进行注入
    (3)@Resource:可以根据类型注入,可以根据名称注入
    (4)@Value:注入普通类型属性
    1.3配置类注解
    (1)@Configuration //作为配置类,替代 xml 配置文件
    (2)@ComponentScan

二、注解的使用

1.使用注解创建bean对象

      在学习注解之前,都是通过对xml配置文档进行配置这种方法来创建bean的
    这种方法特别繁琐,比较浪费时间。现在通过使用注释我们可以很方便的进行
    bean的创建。

1.1导入需要用到的jar包
相对于前面,使用注解需要用到新的jar包
在这里插入图片描述
1.2在xml文档中引入相应的命名空间
这点和在类中import其他类很相似,只有引入相应的命名空间才能够使用相应的标签。

<!--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"

1.3进行扫描配置
需要使用相应的标签进行配置,让spring知道是在哪里使用了注解。

 <!--
  先引入命名空间context
    然后使用context标签
    扫面多个包的:
    1路径中使用,隔开每个类都需要全路径
    2.直接扫面上层,填写包名
      在注解里面 value 属性值可以省略不写,
      默认值是类名称,首字母小写
      UserService 类的id值就为 userServic
    -->
<context:component-scan base-package="注解"></context:component-scan>

1.4组件扫描的细节配置

 <!--
  组件扫描管理
      1.use-default-filters="false" 表示现在不使用默认 filter,自己配置 filter
           context:include-filter ,设置扫描哪些内容
               type表示根据注解来扫描
               expression表示的是注解的类型,也就是扫描的时候之后扫描带@Controller注解的类
    -->
    <context:component-scan base-package="注解" use-default-filters="false">
    <context:include-filter type="annotation"
                            expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
    <!--示例 2
 下面配置扫描包所有内容
 context:exclude-filter: 设置哪些内容不进行扫描
-->
    <context:component-scan base-package="注解">
        <context:exclude-filter type="annotation"

                                expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

1.5使用注解

package 注解;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component
public class course {
    @Autowired
    public Student st;
    @Resource//javax中的
    public Student st1;
public void add(){
    System.out.println("======course======");
    st.add();
}

2.使用注解进行属性注入

  通过对相应注解的使用可以进行属性的注入。

//@Autowired注解的使用

//@Autowired注解的使用
//这个注解是根据属性的类型进行属性注入的
 @Autowired
    public Student st;

@Qualifier注解的使用

@Qualifier
    private course cs;

@Value注解的使用

// @Value注解的使用
//value注解是对普通类型进行属性注入的
 private course cs;
    @Value(value="张三")
    private String name;
    @Value(value = "10086")
    private  int age;

对于抽象类的注解,或者有多个实现类的接口的注解,需要使用@Autowired注解和@Qualifier注解配合使用,防止单独使用的时候spring找不到类

全注解开发

(1)创建配置类,替代 xml 配置文件

1)创建配置类,替代 xml 配置文件
@Configuration //作为配置类,替代 xml 配置文件
@ComponentScan(basePackages = {"com.atguigu"})
public class SpringConfig {
}

(2)编写测试类

public void testService2() {
 //加载配置类
 ApplicationContext context
 = new AnnotationConfigApplicationContext(SpringConfig.class);
 UserService userService = context.getBean("userService", 
UserService.class);
 System.out.println(userService);
 userService.add();
}

总结

IOC,控制反转,是spring的重要特性之一
将就是原本需要人手动去创建的对象交给ioc容器完成
IOC 底层原理
xml 解析、工厂模式、反射
通过xml的配置我们可以完成由spring自动创建对象和对 对象进行属性注入的工作,由使用xml配置文档的bean标签进行创建对象,到使用注释去创建对象,将原本繁琐的工作一步步进行了简化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring中,我们可以使用注解来配置和装配Bean,这可以使我们的代码更加简洁和易于维护。下面是关于如何基于注解配置和装配Bean的一些简要介绍: 1. 基于注解配置Bean 在Spring中,我们可以使用以下注解来配置Bean: - @Component:表示该类是一个Spring Bean,需要被Spring容器管理。 - @Service:表示该类是一个服务层的Bean。 - @Controller:表示该类是一个控制层的Bean。 - @Repository:表示该类是一个数据访问层的Bean。 这些注解都是基于@Component注解的衍生注解,它们的作用是更加明确地表示Bean的角色。我们可以在Bean类上添加这些注解,告诉Spring容器该类需要被管理。例如: ``` @Service public class UserService { // ... } ``` 2. 基于注解装配Bean 在Spring中,我们可以使用以下注解来装配Bean: - @Autowired:自动装配Bean。 - @Qualifier:指定具体的Bean名称进行装配。 - @Resource:指定具体的Bean名称进行装配,与@Qualifier类似。 - @Value:注入一个具体的值。 使用@Autowired注解进行自动装配时,Spring会自动在容器中寻找与该类型匹配的Bean,并将其注入到类的属性中。例如: ``` @Service public class UserService { @Autowired private UserDao userDao; // ... } ``` 使用@Qualifier或@Resource注解可以指定具体的Bean名称进行装配。例如: ``` @Service public class UserService { @Autowired @Qualifier("userDaoImpl") private UserDao userDao; // ... } ``` 使用@Value注解可以注入一个具体的值。例如: ``` @Service public class UserService { @Value("10") private int maxCount; // ... } ``` 以上就是关于Spring中基于注解配置和装配Bean的简要介绍,希望能对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值