代码:

spring2-属性注入-全注解-配置类扫描.zip - 蓝奏云文件大小:12.3 K|https://www.lanzouw.com/iPK5vvq21uf

这个博客,我们使用全注解的方式来扫描java bean

1、创建Category和Product类

package com.how2j.pojo;
//使用注解配置, 不需要定义set函数,import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//定义java bean, id为c
@Component("c")
public class Category {@Value("4")private int id;@Value("Category 1")private String name;//如果使用注解定义java bean,必须有无参构造函数。下面存在有参构造方法,所以如果使用注解必须手动写无参构造函数public Category() {}public Category(int id, String name) {this.id = id;this.name = name;}@Overridepublic String toString() {return "Category{" +"id=" + id +", name='" + name + '\'' +'}';}
}
package com.how2j.pojo;
//这个类使用注解配置
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import javax.annotation.Resource;//因为这个类没在xml文件中定义,所以使用注解来将这个类设置成java bean, 并设置id
@Component("p")
public class Product {//普通属于类型@Value("2")private int id;@Value("product test")private String name;//引用类型属性注入//这里的c是java bean的id,即Category中定义的@ComPonet("c")@Resource(name="c")private com.how2j.pojo.Category category;@Overridepublic String toString() {return "Product{" +"id=" + id +", name='" + name + '\'' +", category=" + category +'}';}
}

2、创建配置类用于扫描java bean,这里的配置类只用来扫描,不用来定义bean

package com.how2j.pojo;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration  //可以将这个理解成xml中的<beans>
//使用配置类扫描批量注册,只能注册加了(@Repository,@Service, @Controller, @Componet类)
@ComponentScan(basePackages = "com.how2j.pojo")public class SpringConfig {
}

3、测试

package test;import com.how2j.pojo.Category;
import com.how2j.pojo.Product;
import com.how2j.pojo.SpringConfig;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class TestSpring {@Test//spring的控制翻转public void test1(){ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);//这里的c是在定义Category类中Category c = (Category) context.getBean("c");System.out.println(c);}@Test//测试spring的属性注入public void test2(){ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);//这里的p是定义在类里的, 即@Component("p")Product p = (Product) context.getBean("p");System.out.println(p);}
}

补充:下面是目录结构

2.3.3 spring属性注入-注解注入-全注解-配置类扫描相关推荐

  1. 兼容 Spring Boot 1.x 和 2.x 配置类参数绑定的工具类 SpringBootBindUtil

    为了让我提供的通用 Mapper 的 boot-starter 同时兼容 Spring Boot 1.x 和 2.x,增加了这么一个工具类. 在 Spring Boot 中,能够直接注入 XXProp ...

  2. JavaEE开发之Spring中的依赖注入与AOP编程

    上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...

  3. Spring Boot(5)---常用注解总结

    Spring Boot常用注解总结 @RestController和@RequestMapping注解 @RestController注解,它继承自@Controller注解.4.0之前的版本,Spr ...

  4. 一篇全了解Spring全注解详解

    目录 用于创建对象 1.Component 2.Controller 3.Service 4.Repository 用于注入数据 1.Autowired 2.Qulifier 3.Resource 4 ...

  5. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  6. Spring学习day02-通过全注解模式实现CRUD

    前言 1.为什么要学习纯注解开发? 2.纯注解开发的优势? 3.使用纯注解开发达到的目标 4.实现纯注解开发的步骤 一.纯注解开发 1.为什么要学习纯注解开发? 因为后续将要学习的SpringBoot ...

  7. 【Spring】万字详解使用注解来存取对象

    使用注解来存取对象 一.配置扫描路径 二.添加注解存储Bean对象 2.1类注解 2.1.1 @Controller存储 2.1.2 @Service存储 2.1.3 @Repository存储 2. ...

  8. 你知道Spring是怎么解析配置类的吗?

    Spring执行流程图如下: Spring执行流程图 这个流程图会随着我们的学习不断的变得越来越详细,也会越来越复杂,希望在这个过程中我们都能朝着精通Spring的目标不断前进!  在上篇文章我们学 ...

  9. Spring 是解析配置类过程详解

    Spring执行流程图如下: Spring执行流程图 这个流程图会随着我们的学习不断的变得越来越详细,也会越来越复杂,希望在这个过程中我们都能朝着精通Spring的目标不断前进!  在上篇文章我们学 ...

最新文章

  1. Full_of_Boys训练3总结
  2. MATLAB图像函数以及应用(第六章)边界问题
  3. 译:Spring Data Repository 不区分大小写查询
  4. Selenium2+python自动化33-文件上传(send_keys)
  5. java圆形排列_位图排序java版
  6. 谁说Python慢来着?不用Python,这个问题难倒了无数的程序员
  7. 我才是嗨到最晚的男人
  8. linux oracle 10g dataguard 实施详细记录
  9. 苹果app代码行数统计
  10. 中国城市新分级名单(转)
  11. 网络技术——路由器及其配置
  12. 【C++】atomic简介
  13. 洛谷 P2184 贪婪大陆
  14. 阿里大数据产品Dataphin上线公共云,将助力更多企业构建数据中台
  15. Linux系统管理上机作业2
  16. 今天真TMD闹心 哎呦我去了!!
  17. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)
  18. 三台机器使用Docker部署Redis集群
  19. ySQL字符串函数:字符串截取
  20. caxa二次开发实例展示

热门文章

  1. 图的邻接矩阵存储和邻接表存储定义方法
  2. 寒假每日一题(入门组)【week2 完结】
  3. java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext崩溃解决
  4. SQL语言之用户(Oracle)
  5. 拿了 30K 的 offer!
  6. 算法--2016搜狐面试:搜狐员工放假了,都玩什么?
  7. 一天搞定HTML----a标签02
  8. String s=a+b+c,到底创建了几个对象?
  9. 模拟教务评教(强智教务)—一件评教实现原理
  10. E: 您必须在 sources.list 中指定代码源(deb-src) URI 解决办法