mvn中,使用spring中获取bean实例

由于spring官方的例子都是用maven进行代码管理, 我打算以后的代码也用maven进行管理。

spring一个重要的优点就是Ioc,也就是控制反转,可以用xml文件来生成类的实例。我以前都是用eclipse下的tomcat方式来管理bean实例,用spring自带的spring tool suits管理还有点不习惯,不过生产工具都是不断优化的,所以这里也学着习惯使用。

配置文件可以放在resources文件夹下,具体目录为src\main\resources,src下的另一个文件是java文件,如图

其中的applicationContext.xml文件就是配置文件,具体内容如下

<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-3.0.xsd" >

<!--
Beans Declaration -->

<bean id="TestTask" class="com.otv.task.TestTask" ></bean>

<bean id="ThreadPoolMonitorService" class="com.otv.monitor.srv.ThreadPoolMonitorService" >

<property name= "monitoringPeriod"  value ="5" />

</bean >

<bean id="TestRejectedExecutionHandler" class="com.otv.handler.TestRejectedExecutionHandler" ></bean>

<bean id="TestThreadPoolExecutorService" class="com.otv.srv.TestThreadPoolExecutorService" >

<property name= "corePoolSize"  value ="1" />

<property name= "maxPoolSize"   value ="3" />

<property name= "keepAliveTime" value ="10" />

<property name= "queueCapacity" value ="3" />

<property name= "testRejectedExecutionHandler" ref="TestRejectedExecutionHandler" />

</bean >

<bean id="Starter" class= "com.otv.start.Starter" >

<property name= "threadPoolMonitorService" ref="ThreadPoolMonitorService" />

<property name= "testThreadPoolExecutorService" ref="TestThreadPoolExecutorService" />

</bean >

</beans>

然后说一下如何加载这个xml文件,通常是用一个Application类,是具体为什么叫这个名字,我还是不确定,我发现许多项目都是叫这个名字,这里我也跟着叫这个名字,其中的代码为

public class Application
{

public static void main(String[] args)
{

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

Starter starter =
(Starter) context.getBean("Starter" );

starter.start();

}

}

这样我们就可以把xml文件加载进来,希望获得Starter这个实例,就可以使用上面的方法。

这里有一个小例子关于线程池的,顺带着学一下线程池的知识。

时间: 2024-10-05 04:43:06

mvn中,使用spring中获取bean实例的相关文章

在完全由Spring管理的环境中使用Spring的Context获取Bean实例

在大型的应用中,常常会有很灵活的需求,而在使用了框架之后,虽然可以大大提高开发的效率,但同时,也把我们框到一个架子中了. 下面先说一下我遇到的问题,事情大概是这样的: @Component @Scope("prototype") public class Action1 implements Action{ ..... } @Component @Scope("prototype") public class Action2 implements Action{ .

Spring容器中获取bean实例的方法

// 得到上下文环境 WebApplicationContext webContext = ContextLoader .getCurrentWebApplicationContext(); // 使用上下文环境中的getBean方法得到bean实例 InhospDoctorStationController controller = (InhospDoctorStationController) webContext.getBean("inhospDoctorStationController

JSP中使用Spring注入的Bean时需要注意的地方

遇到问题 遇到一个问题:在JSP中,使用Spring注入的Bean对象时,未能正确地获取到想要的对象. 郁闷的是,它也没报错. 研究问题 使用DEBUG功能(好久不在JSP里写Java代码了,都忘了JSP也可以打断点调试),跟踪了一下代码,发现确实有了我想使用的类的实例,不过是个代理类. 想到反射.代理相关的知识,貌似知道问题在哪了. 赶紧试了一下,果然…… 解决 在JSP里你要获得的Bean对象的类型,要定义成接口类,而不是实现类. 当然,这也视情况而定,我不确定,在JSP里使用Spring注

spring读取配置文件,且获取bean实例

import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.context.support.FileSystemXmlApplica

spring-如何在项目启动的情况下获取Bean实例

大家都知道,项目启动的时候,spring读取xml文件,将配置的bean 或者 注解下的controller service dao全部实例化.然后注入到代码里去使用.那么我们怎么自己去获取某个实例化的bean呢.自己new是没用的. 举个场景, 假设我写了一个类 public class A{ @Resource private static ADao aDao; static{   aDao.select(); } public static void getA(){  ... } } 当

Spring IOC 创建bean实例的方式

据我所知,创建bean实例的方式有4种方式~ 下面我会一一写出来这4种方式~ 第一种:xml文件中有bean的配置,而且这个bean所对应的java类中存在一个无参构造器,那么这个时候spring容器就可以使用反射调用无参构造器来创建实例了~ 代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/be

使用spring手动获取Bean的时候,不能强转回它自己。

这个问题好像有点长,描述一下: 就是通过类名的方式获取Bean后,得到一个Object对象,但是这个Object不能再强转回Bean了.抛出的异常时类型转换异常.  java.lang.ClassCastException 还有一个现象就是,本来自己对类进行注解了,但是用类名获取的时候,获取不到,抛出的异常时找不到类. org.springframework.beans.factory.NoSuchBeanDefinitionException 还有一个是 java.lang.AbstractM

spring直接获取bean定义

转:http://blog.csdn.net/sdandan/article/details/7911241 ———————————————————————————————————————— BeanFactory为一个管理bean的工厂(即为spring的容器),它管理的对象可以是bean也可以是FactoryBean(这种请况会再调用FactoryBean的getObject()获取真正的bean). FactoryBean为一个工厂bean,受BeanFactory管理. 先来看一看Bea

使用SpringContextHolder获取bean实例

文章转自:https://blog.csdn.net/chenyiminnanjing/article/details/78618847 今天在一个utils包下的文件中写一个方法的时候想去使用@autowired注入一些对象,但发现不可以直接使用@Autowired,因为方法是static,方法中使用的对象也必须是static,但正常情况下@Autowired无法注入静态的bean,于是发现项目中用到了springContextHolder,通过使用 private static Consta