spring-ioc注解-理解2 零配置文件

没有xml配置文件下的对象注入,使用到一个Teacher类,Config配置类,Test测试类。

1、Teacher类

复制代码
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;


import java.util.Date;

//零配置文件
@Data
@Component("tea")
//加载properties文件
@PropertySource({"classpath:date.properties"})
public class Teacher {
    @Value("1")
    private int id;
   // @Value("renzhe")
    @Value("${jdbc.url}")
    private String name;
    @Value("1500")
    private double salary;
    @Autowired
    private Date date;
}
复制代码

2、配置类Config

复制代码
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import java.util.Date;

//配置类相当于一个配置文件
@Configuration
//扫描的注解 扫描com.briup.spring的包以及他的子包子子包
@ComponentScan("com.briup.spring")
public class Config {
    //@Bean相当于bean标签 作用是把方法的返回值放入到容器中
    // 且默认方法的名字就是他的唯一标识 若想自定义名字则@Bean("名字")

    @Bean
    public Date date(){
        return  new Date();
    }

}
复制代码

3、Test测试类

 @Test
    public void test2(){
          ApplicationContext app = new AnnotationConfigApplicationContext(Config.class);
          Teacher tea = app.getBean(Teacher.class);
          System.out.println(tea);
    }

 

posted @   jamers  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示