一、配置文件:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
">
<bean class="cn.edu.tju.domain.CommandManager" id="commandManager" >
</bean>
<bean class="cn.edu.tju.domain.Command" id="command" scope="prototype" >
</bean>
</beans>
二、实体类文章来源:https://www.toymoban.com/news/detail-614792.html
package cn.edu.tju.domain;
import java.time.LocalDateTime;
import java.util.Map;
public class Command {
private Map<String, Object> state;
public Map<String, Object> getState() {
return state;
}
public void setState(Map<String, Object> state) {
this.state = state;
}
public Object execute(){
System.out.println(LocalDateTime.now().toLocalTime());
return null;
}
}
package cn.edu.tju.domain;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import java.util.Map;
public class CommandManager implements ApplicationContextAware {
private ApplicationContext applicationContext;
public Object process(Map<String, Object> commandState) {
// grab a new instance of the appropriate Command
Command command = createCommand();
// set the state on the (hopefully brand new) Command instance
command.setState(commandState);
return command.execute();
}
protected Command createCommand() {
// notice the Spring API dependency!
return this.applicationContext.getBean("command", Command.class);
}
public void setApplicationContext(
ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
三、主类:文章来源地址https://www.toymoban.com/news/detail-614792.html
package cn.edu.tju;
import cn.edu.tju.domain.CommandManager;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.HashMap;
public class TestDiffScope {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("test7.xml","test2.xml");
CommandManager commandManager = context.getBean("commandManager", CommandManager.class);
commandManager.process(new HashMap<String, Object>());
CommandManager commandManager2 = context.getBean("commandManager", CommandManager.class);
commandManager2.process(new HashMap<>());
}
}
到了这里,关于Spring 6.0官方文档示例(22): singleton类型的bean和prototype类型的bean协同工作的方法(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!