首页 > 编程知识 正文

三元催化回收到底有什么用,上学到底有什么用绘本

时间:2023-05-05 14:43:31 阅读:182982 作者:2067

Spring Bean是什么?有什么用? 一、Bean到底是什么?二.怎么使用bean?三.Bean配置四.Bean的作用域

Bean在Spring和SpringMVC中随处可见,将这个概念内化很重要,下面分享一下我的想法:

一、Bean到底是什么?

我个人的理解,觉得bean就相当于定义一个组件,这个组件是用于具体实现某个功能的。这里的所定义的bean就相当于给了你一个简洁方便的方法来调用这个组件实现你要完成的功能。

1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化)
2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性
3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;(@Component , @Repository , @ Controller , @Service , @Configration)
4、把Bean理解为类的代理或代言人(实际上确实是通过反射、代理来实现的),这样它就能代表类拥有该拥有的东西了
5、我们都在微博上@zgdlb,对方会优先看到这条信息,并给你反馈,那么在Spring中,你标识一个@符号,那么Spring就会来看看,并且从这里拿到一个Bean(注册)或者给出一个Bean(使用)

二.怎么使用bean?

**对于我们的spring最主要的应该就是由这些bean组成的bean工厂,每个bean实现一个功能
例如:你写的第一个bean

<bean id="userAction" class="com.neusoft.gmsbs.gms.user.action.UserAction"scope="prototype"><property name="userBO" ref="userBO" /></bean>

id相当于定义了你的这个bean的别名,如果你需要他的话只要关联这个别名就可以了,也就相当于下面的一样,在你的userAction中需要实现userBO这个功能,我关联它,那么在action中set注入就可以使用了!
至于其他的属性看下面:
Id : 标识该bean的名称,通过factory.getBean(“id”)来获得实例。
Class : 该bean的类路径。
Singleton : 默认为true,即单实例模式,每次getBean(“id”)时获取的都是同
一个实例,如果设置为false,即原型模式,则每次获取的是新创建
的实例。**

三.Bean配置

ID,name 或class
一般情况下,转配一个Bean时,通过指定一个ID属性作为Bean的名称
1.id属性在IOC容器中必须是唯一的
2.如果Bean的名称中含有特殊字符,就需要使用name属性
3.class用于设置一个类的完全路径名称,主要作用是ioc容器生成类的实例

四.Bean的作用域


上代码操作:

1. 新建配置文件 》resources》applicationContext.xml <!--Bean的作用范围--> <bean id="person" class="com.coure.ioc.demo.Person" scope="singleton"></bean>2. 新建class文件 Spring package com.coure.ioc.demo;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Spring { @Test public void demo(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); Person persion1 = (Person)applicationContext.getBean("person"); Person persion2 = (Person)applicationContext.getBean("person"); System.out.println(persion1); System.out.println(persion2); }}3.新建class文件 personpackage com.coure.ioc.demo;public class Person {}执行run方法 demo <!--Bean的作用范围--> <bean id="person" class="com.coure.ioc.demo.Person" scope="singleton"></bean>com.coure.ioc.demo.Person@20140db9com.coure.ioc.demo.Person@20140db9 <!--Bean的作用范围--> <bean id="person" class="com.coure.ioc.demo.Person" scope="prototype"></bean>com.coure.ioc.demo.Person@20140db9com.coure.ioc.demo.Person@1e6a3214

从上面的例子也印证了我上面的总结的内容:
1、凡是子类及带属性、方法的类都注册Bean到Spring中,交给它管理;
2、@Bean 用在方法上,告诉Spring容器,你可以从下面这个方法中拿到一个Bean

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。