SpringIOC核心功能入门(4.2.4版本)

一,什么是IOC的核心功能?

IOC:Inversion of Control 控制反转. 指的是 对象的创建权反转(交给)给Spring.作用是实现了程序的解耦合.解决程序耦合性高的问题。

二,配置
(1)引入Spring的开发包如下:(此处提供网盘下载,若失效请留言:链接:https://pan.baidu.com/s/1Uk_-NtKRviwyYUgubyFvPw 密码:fin3)
(2)解压进入后可看到libs下有60个jar包,那么Spring项目的最基本的核心的必须要的jar包需要哪些呢?如下:
这里写图片描述
这里写图片描述
(最基本jar包:链接:https://pan.baidu.com/s/1hibDJmNlL-vODQ9S9Usjvw 密码:vypt)
(3)引入日志相关配置文件:log4j.properties 放在src目录下
(链接:https://pan.baidu.com/s/128_I5Z3siKDNRu_RVM5e4w 密码:x6u2)

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=info, stdout

举例如下:ctrl+1引入Junit4
这里写图片描述
结果如下:
这里写图片描述
(4)引入applicationContext.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--自行配置bean标签-->

</beans>

(5)编写接口:

package itheima;

public interface userservice {
    public void sayhello();

}

编写相关的类

package itheima;

import org.apache.log4j.Logger;

public class userserviceimpl implements userservice {
    Logger log=Logger.getLogger(userserviceimpl.class);
    @Override
    public void sayhello() {
        System.out.print("Hello world");
        log.info("执行了sayhello函数");
    }

}

完成xml文件的配置bean:

    <!-- 使用bean标签 -->
    <bean id="userservice" class="itheima.userserviceimpl" />

编写测试类:

//使用接口的方式
    @Test
    public void C() {
        //创建工厂,加载核心配置文件
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        //从工厂中获取到对象
        userservice usi=(userservice) ac.getBean("userservice");    
        //调用对象的方法执行
        usi.sayhello();
    }

输出结果:
这里写图片描述
例子体现了Spring的基础IOC:控制反转,将对象的创建权交给了Spring.在这个过程中,我们由“主动创建”变成了“被动创建”,我们不需要了解如何创建及工作的,只需要关注如何描述。
这里我们阐述下控制反转的概念:
控制反转是一种通过描述(在Java中可以是XML或注解)并通过第三方去产生或获取特定对象的方式。
Spring会提供IOC容器来管理对应的资源,当各个模块接口开发好之后,就可以将其服务发布到SpringIOC的容器里,这个时候你只需要过程描述得到对应的功能接口,就可以完成对应的功能操作了。可见SpringIOC容器带来许多使用的便利。

这就是控制反转的理念,其好处在于降低对象之间的耦合。

猜你喜欢

转载自blog.csdn.net/weixin_36413887/article/details/80498594