SPRING-入门(二)beans注入三种方式

一.spring IOC

在学习spring时,刚开始的时候,弄清楚,spring的ioc,控制反转机制,将普通的Java对象(POJO),进行管理实例化,不再像以前一样自己直接new出来了,而是由spring容器直接创建并进行管理。POJO之间的依赖关系也有spring容器直接管理,可以降低耦合度。

简单来说,spring框架就是对你的Java对象进行管理,不用你直接用代码new出来了,你只要告诉spring你要什么,它会,直接实例化Java对象给你。下面所说bean,也就是Java对象。

所以,在使用spring容器之前,要进行相应的配置,告诉spring容器要实例化哪些对象。

二.spring的IOC注入的三种方式:

1.使用xml配置beans

在上一篇的maven项目下的resource文件下创建配置文件xml,也可以直接在applicationContext.xml中直接配置。
利用xml配置之前,需要class类信息,所以要创建class类,之后再xml中映射到相应的class类。
流程:1.创建类 2.再xml文件做映射
1)创建beans.xml 配置文件,加载到启动类的中。在这里插入图片描述

2)创建实体类Dog类,并且配置bean映射
在进行属性注入时,一定要有setter .getter 方法

public class Dog {
    private String kind;
    private String name;
    private String color;
    ...setter 
    ...getter
    ....}

xml的映射文件:
在这里插入图片描述
运行结果:
在这里插入图片描述

2.使用注解配置bean

1)常用的注解:

  • 注解
  • @Component 代表一个普通的bean
  • 下面三个注解是包含@Component的,只不过是用来表明用在明确的地方,MVC模式的用途
  • @Repository 代表持久层的bean
  • @Service 代表业务层的bean
  • @Controller 代表控制层的bean

@Component
public class Cat {
    private String kind;
    private String name;
    ..setter..
    ..getter..
    }

使用上面注解即可配置好bean了,但是还要再配置文件中声明这些注解生效,所以到xml下添加声明;
在这里插入图片描述

然后,就可以使用spring容器创建相应的bean了。

3.使用基于Java配置类启动容器

1)使用@Configuration注解配置bean信息

package com.jun.domain;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @author jun
 * @time 2018/10/10
 */
//表示这是一个配置类
@Configuration
public class Pets {
    @Bean
    public Pig pig(){
        return new Pig();//Pig是一个实体类,只有setter,getter方法
    }
    //返回一个bean,名字即为方法的名字    
    @Bean
    public Fish fish(){
        return new Fish();//Fish是一个实体类,只有setter,getter方法
    }
}

2)然后到启动类中配置信息

//用来启动springIOC容器,启动类
public class ApplicationMain {
    public static void main(String[] args){
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("classpath:applicationContext.xml","classpath:beans.xml");
//        FileSystemXmlApplicationContext   绝对路径下使用
//        AnnotationConfigApplicationContext  Java配置注解下使用
        ApplicationContext context = new AnnotationConfigApplicationContext(Pets.class);
        Pig pig = (Pig) context.getBean("pig");
        Fish fish = (Fish)context.getBean("fish");
        System.out.println(pig+"\n"+fish);
        ......

这三种方法就是大概这些,心累,今天去面试,居然有点透心凉了。加油。

猜你喜欢

转载自blog.csdn.net/qq_40981730/article/details/82991243