我们可以通过创建一个Bean对象,并将数据设置为Bean的属性,然后通过调用Bean的方法来实现方法之间的通信。 下面是一个示例代码: publicclassMyBean{privateintdata;publicvoidsetData(intdata){this.data=data;}publicintgetData(){returndata;}publicvoidmethodA(){// 调用methodB()methodB();}publicvoidmethodB(){...
public class UserService { public static void main(String[] args) { BookService bookService = (BookService) BeanFactory.getBean("bookService"); System.out.println(bookService); } } public class BookService { public static void main(String[] args) { UserService userService = (UserService) B...
3、proxyBeanMethods :代理bean的方法,默认为true*/@Import({User.class, DBHelper.class})//给容器中自动创建出这2个组件@Configuration(proxyBeanMethods =false)//告诉spring boot这是一个配置类==配置文件publicclassMyconfig {/*proxyBeanMethods 如果为True, 获取到的类组件就是代理对象。代理对象多次调用组件...
importorg.springframework.beans.factory.BeanNameAware;importorg.springframework.beans.factory.BeanFactory;importorg.springframework.beans.factory.BeanFactoryAware;importorg.springframework.context.ApplicationContext;importorg.springframework.context.ApplicationContextAware;publicclassMyBeanimplementsBeanNameAware, BeanFactory...
默认情况下,所有bean的公有方法都可以被外部调用,但bean一般只会引出其公有方法的一个子集。 由于JavaBean本身是Java对象,调用这个对象的方法是与其交互作用的唯一途径。JavaBean严格遵守面向对象的类设计逻辑,不让外部世界访问其任何字段(没有public字段)。这样,方法调用是接触Bean的唯一途径。 但是和普通类不同的是,...
("【InitializingBean接口】调用InitializingBean.afterPropertiesSet()");}// 通过<bean>的init-method属性指定的初始化方法publicvoidmyInit(){System.out.println("【init-method】调用<bean>的init-method属性指定的初始化方法");}// 通过<bean>的destroy-method属性指定的初始化方法publicvoidmyDestory(){System....
注意:BeanDefinition是一个接口,内部只定义了bean对象的一些基本行为。上表中的属性在BeanDefinition中并不是真实存在的,只是通过set、get方法来设置和获取。以下抽取出部分BeanDefinition源代码供大家感知下 public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement { /** * Override the target sco...
public void afterPropertiesSet() throws Exception { logger.info("BeanLifeCheck: afterPropertiesSet " + applicationName); } } 2.1 初始化方法initMethod 这个以前是通过xml配置文件来定义的,现在可以直接定义在@Bean注解上,如下: @Bean(initMethod = "initMethod") ...
3.2 单例Bean初始化入口 接下来我们看下初始化Bean的核心方法,从名字就可以看出,完成BeanFactory的初始化,注释意为,初始化所有的非懒加载单例Bean。 其中的核心调用方法,初始化所有单例Bean @Override public void preInstantiateSingletons() throws BeansException { ... //获取前面注册过的所有Bean的名称,转储到...