Spring框架入门基础1:IOC---控制权反转

Spring框架的优点

方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理,这也是IOC的作用。

IOC

IOC就是控制反转,将创建对象的过程交给spring进行管理,可以用来减低计算机代码之间的耦合度。

IOC的实现流程:

① 解析xml文档;

② 工厂模式;//将创建对象的任务交给工厂,解耦的重要步骤。

③ 采用反射设计模式创建对象

我们创建一个maven工程,并导入相应的依赖坐标


    
        org.springframework
        spring-context
        5.0.2.RELEASE
    
    
        commons-logging
        commons-logging
        1.2
    
    
        log4j
        log4j
        1.2.12
    
    
        junit
        junit
        4.12
        test
    

然后编写核心配置文件,在resources目录下创建

我们创建一个实体类,并定义一个hello方法

Spring框架入门基础1:IOC---控制权反转_第1张图片

 我们在xml配置文件中,通过IOC配置创建对象,在这里我们需要理解一个概念:bean,我们可以将bean理解为类的代理或者是类的设计图。

    
    
    

我们先简单的通过Spring来创建一个对象实例

创建一个DemoTest类,注意在test目录下的java测试根目录创建。

Spring框架入门基础1:IOC---控制权反转_第2张图片

public void run1(){
        //加载配置文件
        ApplicationContext ac =  new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取对象
        Demo demo = (Demo) ac.getBean("Demo");
        demo.hello();
    }

然后我们通过xml配置的方式,通过对bean的管理来对创建的对象进行依赖注入。

xml配置创建及注入

首先创建一个User类

Spring框架入门基础1:IOC---控制权反转_第3张图片

 然后我们在xml文件中对其注入


        
        
        
        
        
        
        

这种方式称为属性的set方法注入,顾名思义,我们需要生成属性的set方法

 我们将set方法注释,发现注入失败。

我们还可以通过构造器的方式对属性进行依赖注入


    
        
        
        
        
    

然后我们来介绍一些特殊属性的注入,array、list、map

依然是新建一个Collection类,并生成set方法,并通过property的方式注入

Spring框架入门基础1:IOC---控制权反转_第4张图片


        
        
            
                wkx
                123
                www
            
        
        
        
            
                ww
                pis
                dal
            
        
        
        
            
                
                
                
            
        
    

以上是通过xml配置的方式来创建对象以及依赖注入,接来下介绍用注解的方式创建对象和注入依赖。

创建对象的四个注解

@Component 普通的类  //默认当前类名就是ID名称,首字母小写

@Controller 表现层

@Service 业务层

@Repository 持久层

这四种方式在Spring框架中创建对象时,使用方式基本一致。我们以Component为例

首先需要在xml文件中开启注解扫描


然后在需要管理的类上添加@Component注解即可。

依赖注入的四个注解

@Value 用于注入普通类型(String,int,double等类型)

@Autowired 默认按类型进行自动装配(引用类型)

@Qualifier 不能单独使用必须和@Autowired一起使用,强制使用名称注入

@Resource Java提供的注解,也被支持。使用name属性,按名称注入

常用的是前两个注解方式

@Component
public class Annotation {

    @Value("16")
    private Integer age;
    @Value("王凯先")
    private String name;

}
ApplicationContext ac =  new ClassPathXmlApplicationContext("applicationContext.xml");
Annotation annotation = (Annotation) ac.getBean("annotation"); 
System.out.println(annotation);

Spring框架基础入门2:AOP--面向切面编程

你可能感兴趣的:(Spring,java,spring,java,后端)