自学内容网 自学内容网

Factory快速入门

传统JAVAweb开发层与层之间太过紧密,new的对象太多。使用仓库会增强事务的功能,第三方增强。
IoC,DI和AOP思想的提出:
IoC思想:传统的第三方,需要自己创建Bean对象,需要使用的时候通过get,set方法调用,IoC思想为控制反转,Bean对象由第三方控制,需要使用的时候通过第三方去调用
DI思想:依赖注入,强调Bean之间的关系,由第三方负责
Aop思想:面向切面编程:功能的横向抽取,主要的实现方式是Proxy

软件的框架也是半成品,抽取为一个大概框架。基于基础技术之上,是一个半成品,使用大量的设计模式,算法,具备扩展性。

BaenFactory开发步骤:
1.导入Spring的jar包或maven坐标
2.编写UserService接口以及UserServiceImpl实现类
3.创建beans.xml文件,将UserServiceImpl的信息配置到该xml文件中。
4.编写测试代码,创建BeanFactory,加载配置文件,获取UserService实例对象

以下是实例代码:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>SpringTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.7</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.7</version>  <!-- 使用适合你的 Spring 版本 -->
        </dependency>

    </dependencies>

</project>

<?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 id="userService" class="com.zzz.service.impl.UserServiceImpl">

    </bean>
</beans>
package com.zzz.test;

import com.zzz.service.UserService;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;

import java.util.zip.Deflater;

public class BeanFactoryTest {
    public static void main(String[] args) {
        //创建工厂对象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        //创建读取器
        XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
        //将工厂与读取器绑定
        reader.loadBeanDefinitions("beans.xml");
        //根据id获取Bean实例对象
        UserService userService =(UserService)beanFactory.getBean("userService");
        System.out.println(userService);
    }
}

以上可见,只需要在Beans.xml文件中配置bean文件就可以通过第三方工厂获取到bean文件

步骤汇总:
1.创建User接口类,创建实现对象
2.在beans.xml文件中将接口文件写入,配置bean文件
3.实例化测试,通过id查找输出。
在test测试文档中,,有以下几个步骤:
1.创建工厂对象:
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
2.创建读取器:
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
3.将工厂与读取器绑定:
reader.loadBeanDefinitions(“beans.xml”);
这是spring开发三板斧
接下来就可以通过id获取Bean实例对象:通过BeanFactory的getBean方法:
UserService userService =(UserService)beanFactory.getBean(“userService”);
类型通过Bean接口类进行强转。

打印的时候,还有一种方法,叫做注入:在实现类中写,可从BeanFactory中调用该方法:
public class UserServiceImpl implements UserService {
public void setUserDao(UserDao userDao) {
System.out.println(“这儿打印了”+userDao);
}
}
同时,需要在bean.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 id="userService" class="com.zzz.service.impl.UserServiceImpl">
<property name="userDao" ref="UserDao"><!--配置注入-->

</property>
    </bean>

    <!--配置UserDaoImpl-->
    <bean id="UserDao" class="dao.UserDaoImpl">

    </bean>
</beans>

原文地址:https://blog.csdn.net/ZZZ_zzz555/article/details/143821837

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!