2.Spring的创建和使用(Bean对象注册到容器与获取)

目录

1.创建一个Spring IoC容器

2.注册Bean对象到容器

2.1通过类注解

2.2通过方法注解

3.获取Bean对象

不同的类注解用于不同的软件分层中


1.创建一个Spring IoC容器

public class Spring容器启动类 {
​
    public static void main(String[] args) {
        //ApplicationContext就是Spring容器的顶级接口
        //AnnotationConfigApplicationContext是其中的一个实现类,它的作用是:
        //(1)扫描指定的包路径下,使用Spring框架注解的类
        //(2)注册这些类到容器中=>框架帮我们new对象,及注入对象的依赖关系(属性赋值)
        ApplicationContext context
                = new AnnotationConfigApplicationContext("org.example");

2.注册Bean对象到容器

2.1通过类注解

//以下4个注解,都是**类注解**,用于注册Bean对象
//注册的方式,默认的Bean ID(名称),是类名首字母小写
@Controller
//@Service
//@Repository
//@Component
//以上都是单例的---注册为普通的javaBean对象
//@Configuration---注册为配置类对象
​
//被扫描到才能注测到容器---1.类注解2.路径
public class Bean对象1 {
​
    public void sayHello(){
        System.out.println("Hello");
    }
}

2.2通过方法注解

@Configuration
public class AppConfig {
    @Bean
    public Bean对象2 testBean2_1(){
        return new Bean对象2();
    }
    @Bean
    public Bean对象2 testBean2_2(){
        return new Bean对象2();
    }
}

1.只有类被扫描到,且注册到容器中,方法上的@Bean注解才生效

2.Bean注解的方法所在的类,需要以上5种类注解之一。一般,是在@Configuration配置类中使用,比较规范

3.获取Bean对象

//(1)通过bean的类型
Bean对象1 b1 = context.getBean(Bean对象1.class);
System.out.println(b1);
//(2)通过bean的id(也叫bean的名称)
Bean对象1 b1_2 = (Bean对象1) context.getBean("bean对象1");//这个方法要强制转换一下
System.out.println(b1_2);
//@Bean 方法注册到容器的 对象
Bean对象2 b2_1 = (Bean对象2) context.getBean("testBean2_1");
System.out.println(b2_1);
Bean对象2 b2_2 = (Bean对象2) context.getBean("testBean2_2");
System.out.println(b2_2);
//一个类型,可以注册多个实例对象
//但这样获取bean对象,就只能使用bean id/名称来获取。
//使用类型获取,就会报错

默认注册到容器中的bean id(名称),是类名首字母小写或类名 补充:类名开始连续两个字母大写,bean id就是类名,否则就是首字母小写

不同的类注解用于不同的软件分层中

为什么需要怎么多的类注解也是相同的原因,就是让程序员看到类注解之后,就能直接了解当前类 的用途,比如:

@Configuration:配置层。容器启动就初始化配置

@Controller:表示的是业务逻辑层;接受http请求并返回响应

@Servie:服务层;处理业务逻辑

@Repository:持久层; 数据访问分层:一般是数据库的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值