Java基础入门:Spring之Spring Bean

开课吧开课吧锤锤2021-02-05 11:59

IOC          inversion of Controller 控制反转。

由我们自己实例化的对象交给spring容器来实始化。这时对象的初始化的权利就会反转。

DI                dependency injection 依赖注入

在spring框架负责创建Bean对象时,动态将依赖对象注入到Bean组件

IOC/DI区别

                IOC 控制反转,是指对象实例化权利由spring容器来管理

                DI 依赖注入 在spring创建对象的过程中,对象所依赖的属性通过配置注入对象中。

开课吧广场Java教程

Spring Bean基本步骤

1.导入相关jar包

        spring-beans-4.2.4.RELEASE.jar

        spring-context-4.2.4.RELEASE.jar

        spring-core-4.2.4.RELEASE.jar

        spring-expression-4.2.4.RELEASE.jar

2.导入相关日志包

        commons-logging-1.2.jar

        log4j-1.2.16.jar

        

3.在项目的src目录下创建applicationContext.xml文件

        <?xml version="1.0" encoding="UTF-8"?>

        <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"

                        "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

        <beans>

                <bean id="userService" class="com.b3a4a.ioc.UserServiceImpl"> 

                        <!-- 通过依赖注入将cnB3a4a这个值注到实例对象的info属性中 -->

                        <property name="info" value="cnB3a4a"></property> 

                </bean>

        </beans>

        

        注意:

        

        <bean></bean>标签注意事项

        

                在开发中可以使用id或name 

                id它遵守xml规范,名称中不能包含特殊符号                 

                name它是为了更好的扩展,在name中可以包含一些特殊符号,例如"_"

4.创建接口(IUserService)和实现类(UserServiceImpl)

        public interface IUserService {

                public void hello();

        }

        public class UserServiceImpl implements IUserService {

                private String info;

                @Override

                public void hello() {

                        System.out.println("hello " + info);

                }

                

                //省略get/set方法

                ......

        }

5.获取对象实例

        @Test

        public void test(){

                ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

                IUserService service = (IUserService) applicationContext.getBean("userService");

                service.sayHello();

        }

上面就是一个基本的使用步骤了,但是这个只是一个最基本的入门,那么接下来咱们则开始给大家一点点的引入

首先,大家需要明确一个问题,那就是我们这个Spring Bean这块的作用是什么?

很简单,就是我们相关对象以前是通过自己new 对象的形式来创建的,现在呢,则改为让框架统一对咱们的对象进行管理.所以咱们先来看下在Spring中,我们的对象究竟是有谁来创建的.当然.说简单点,其实底层实现起来是通过 解析xml配置文件+反射+工厂模式来实现的, 而我们在使用的过程中,我们真正需要了解的就是所谓的对象是通过哪些工厂来实现的呢?

1)BeanFactory

2)ApplicationContext

3)ClassPathXmlApplicationContext

4)FileSystemXmlApplicationContext

5)WebApplicationContext

他们之间的关系

BeanFactory(根接口)        -->                ApplicationContext(子接口)        

至于ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,WebApplicationContext则是一个个具体的实现类,当然这里先和大家说声,真实开发中都是使用

WebApplicationContext来实例化咱们的spring bean容器,但是这个工厂我们不需要自己去创建,通过一些配置,我们就能让这个对象在咱们项目启动的时候自动初始化~

创建工厂的方式

        

    a)通过BeanFactory来获取

          BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

    b)通过ClassPathXmlApplicationContext来获取

         ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");

    c)通过FileSystemXmlApplicationContext来获取

         ApplicationContext factory = new FileSystemXmlApplicationContext("src/applicationContext.xml");

通过工厂获取实例对象

                IBean bean = (IBean) factory.getBean("bean");

但是这里有一个小小的知识点需要告诉大家,BeanFactory是延迟加载,ApplicationContext是加载配置文件的时候加载

Java是一门优秀的编程语言,应用广泛,可以做网站、软件、手机游戏、中间件以及现在流行的安卓手机app等,发展前景很可观,有对Java感兴趣的同学就赶快学习起来吧。以上就是小编今天为大家整理发布的“Java基础入门:Spring之Spring Bean”一文,希望为正在学习Java语言的朋友提供学习参考,更多Java教程相关内容尽在开课吧广场Java教程频道!

有用
分享