spring配置(Java中如何获取Spring中配置的bean)

2025-05-29 23:30:01 :0

spring配置(Java中如何获取Spring中配置的bean)

其实spring配置的问题并不复杂,但是又很多的朋友都不太了解Java中如何获取Spring中配置的bean,因此呢,今天小编就来为大家分享spring配置的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

Java中如何获取Spring中配置的bean

  一 什么是Spring?

  Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

  二 如何在程序中获取Spring配置的bean呢?

  方法一 在初始化时保存ApplicationContext对象

  代码

ApplicationContext ac = new FileSystemXmlApplicationContex( applicationContext xml );     ac getBean( beanId );

  ApplicationContext ac = new FileSystemXmlApplicationContex( applicationContext xml );

  ac getBean( beanId );说明 这种方式适用于采用Spring框架的独立应用程序 需要程序通过配置文件手工初始化Spring的情况

  方法二 通过Spring提供的工具类获取ApplicationContext对象

  代码  

import sprntext support WebApplicationContextUtils;      ApplicationContext ac = WebApplicationContextUtils                                 getRequiredWebApplicationContext(ServletContext sc)      ApplicationContext ac = WebApplicationContextUtils                                 getWebApplicationContext(ServletContext sc)      ac getBean( beanId );      ac getBean( beanId );   import sprntext support WebApplicationContextUtils;      ApplicationContext ac = WebApplicationContextUtils                                 getRequiredWebApplicationContext(ServletContext sc)      ApplicationContext ac = WebApplicationContextUtils                                 getWebApplicationContext(ServletContext sc)      ac getBean( beanId );      ac getBean( beanId );

  方法三 继承自抽象类ApplicationObjectSupport

  说明 抽象类ApplicationObjectSupport提供getApplicationContext()方法 可以方便的获取到ApplicationContext Spring初始化时 会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入

  方法四 继承自抽象类WebApplicationObjectSupport

  说明 类似方法三 调用getWebApplicationContext()获取WebApplicationContext

  方法五 实现接口ApplicationContextAware

lishixinzhi/Article/program/Java/ky/201311/28587

Spring的配置文件是什么

【答案】:Spring的配置文件是一个XML文件,文件包含了类信息并描述了这些类是如何配置和互相调用的。

spring连接池配置详解

   数据库连接池概述

  数据库连接是一种关键的有限的昂贵的资源 这一点在多用户的网页应用程序中体现得尤为突出 对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性 影响到程序的性能指标 数据库连接池正是针对这个问题提出来的

  数据库连接池负责分配 管理和释放数据库连接 它允许应用程序重复使用一个现有的数据库连接 而再不是重新建立一个 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏 这项技术能明显提高对数据库操作的性能

  数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中 这些数据库连接的数量是由最小数据库连接数来设定的 无论这些数据库连接是否被使用 连接池都将一直保证至少拥有这么多的连接数量 连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数 当应用程序向连接池请求的连接数超过最大连接数量时 这些请求将被加入到等待队列中 数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素

   ) 最小连接数是连接池一直保持的数据库连接 所以如果应用程序对数据库连接的使用量不大 将会有大量的数据库连接资源被浪费

   ) 最大连接数是连接池能申请的最大连接数 如果数据库连接请求超过此数 后面的数据库连接请求将被加入到等待队列中 这会影响之后的数据库操作

   ) 如果最小连接数与最大连接数相差太大 那么最先的连接请求将会获利 之后超过最小连接数量的连接请求等价于建立一个新的数据库连接 不过 这些大于最小连接数的数据库连接在使用完不会马上被释放 它将被放到连接池中等待重复使用或是空闲超时后被释放

  目前常用的连接池有 C P DBCP Proxool

  网上的评价是

  C P 比较耗费资源 效率方面可能要低一点

  DBCP在实践中存在BUG 在某些种情会产生很多空连接不能释放 Hibernate 已经放弃了对其的支持

  Proxool的负面评价较少 现在比较推荐它 而且它还提供即时监控连接池状态的功能 便于发现连接泄漏的情况

  配置如下

   在spring配置文件中 一般在applicationContext xml中

  《bean id= DataSource class= logicalcobwebs proxool ProxoolDataSource destroy method= shutdown 》

  《property name= driver 》

  《value》oracle jdbc driver OracleDriver《/value》

  《/property》

  《property name= driverUrl 》

  《value》jdbc:oracle:thin:xxxx/xxxx@ XX: :server《/value》

  《/property》

  《property name= user 》

  《value》xxxx《/value》

  《/property》

  《property name= password 》

  《value》xxxx《/value》

  《/property》

  《property name= alias 》

  《value》server《/value》

  《/property》

  《property name= houseKeepingSleepTime 》

  《value》 《/value》

  《/property》

  《property name= houseKeepingTestSql 》

  《value》select from dual《/value》

  《/property》

  《property name= testBeforeUse 》

  《value》true《/value》

  《/property》

  《property name= testAfterUse 》

  《value》true《/value》

  《/property》

  《property name= prototypeCount 》

  《value》 《/value》

  《/property》

  《property name= maximumConnectionCount 》

  《value》 《/value》

  《/property》

  《property name= minimumConnectionCount 》

  《value》 《/value》

  《/property》

  《property name= statistics 》

  《value》 m m d《/value》

  《/property》

  《property name= statisticsLogLevel 》

  《value》ERROR《/value》

  《/property》

  《property name= trace 》

  《value》true《/value》

  《/property》

  《property name= verbose 》

  《value》false《/value》

  《/property》

  《property name= simultaneousBuildThrottle 》

  《value》 《/value》

  《/property》

  《property name= maximumActiveTime 》

  《value》 《/value》

  《/property》

  《property name= jmx 》

  《value》false《/value》

  《/property》

  《/bean》

  然后注入到sessionFactory中

  《bean id= sessionFactory class= springframework orm hibernate LocalSessionFactoryBean 》

  《property name= dataSource ref= DataSource /》

  《/bean》

   属性列表说明:

  fatal sql exception: 它是一个逗号分割的信息片段 当一个SQL异常发生时 他的异常信息将与这个信息片段进行比较 如果在片段中存在 那么这个异常将被认为是个致命错误(Fatal SQL Exception ) 这种情况下 数据库连接将要被放弃 无论发生什么 这个异常将会被重掷以提供给消费者 用户最好自己配置一个不同的异常来抛出

  fatal sql exception wrapper class:正如上面所说 你最好配置一个不同的异常来重掷 利用这个属性 用户可以包装SQLException 使他变成另外一个异常 这个异常或者继承QLException或者继承字RuntimeException proxool自带了 个实现: logicalcobwebs proxool FatalSQLException 和 logicalcobwebs proxool FatalRuntimeException 后者更合适

  house keeping sleep time: house keeper 保留线程处于睡眠状态的最长时间 house keeper 的职责就是检查各个连接的状态 并判断是否需要销毁或者创建

  house keeping test sql:  如果发现了空闲的数据库连接 house keeper 将会用这个语句来测试 这个语句最好非常快的被执行 如果没有定义 测试过程将会被忽略

  injectable connection interface: 允许proxool实现被代理的connection对象的方法

  injectable statement interface: 允许proxool实现被代理的Statement 对象方法

  injectable prepared statement interface: 允许proxool实现被代理的PreparedStatement 对象方法

  injectable callable statement interface: 允许proxool实现被代理的CallableStatement 对象方法

  jmx: 如果属性为true 就会注册一个消息Bean到jms服务 消息Bean对象名: Proxool:type=Pool name=《alias》 默认值为false

  jmx agent id: 一个逗号分隔的JMX代理列表(如使用MBeanServerFactory findMBeanServer(String agentId)注册的连接池 )这个属性是仅当 jmx 属性设置为 true 才有效 所有注册jmx服务器使用这个属性是不确定的

  jndi name: 数据源的名称

  maximum active time: 如果housekeeper 检测到某个线程的活动时间大于这个数值 它将会杀掉这个线程 所以确认一下你的服务器的带宽 然后定一个合适的值 默认是 分钟

  maximum connection count: 最大的数据库连接数

  maximum connection lifetime: 一个线程的最大寿命

  minimum connection count: 最小的数据库连接数

  overload without refusal lifetime: 这可以帮助我们确定连接池的状态 如果我们已经拒绝了一个连接在这个设定值(毫秒) 然后被认为是超载 默认为 秒

  prototype count: 连接池中可用的连接数量 如果当前的连接池中的连接少于这个数值 新的连接将被建立(假设没有超过最大可用数) 例如 我们有 个活动连接 个可用连接 而我们的prototype count是 那么数据库连接池将试图建立另外 个连接 这和 minimum connection count不同 minimum connection count把活动的连接也计算在内 prototype count 是spare connections 的数量

  recently started threshold: 这可以帮助我们确定连接池的状态 连接数少还是多或超载 只要至少有一个连接已开始在此值(毫秒)内 或者有一些多余的可用连接 那么我们假设连接池是开启的 默认为 秒

  simultaneous build throttle: 这是我们可一次建立的最大连接数 那就是新增的连接请求 但还没有可供使用的连接 由于连接可以使用多线程 在有限的时间之间建立联系从而带来可用连接 但是我们需要通过一些方式确认一些线程并不是立即响应连接请求的 默认是

  statistics:  连接池使用状况统计 参数 s m d

  statistics log level: 日志统计跟踪类型 参数 ERROR 或 INFO

  test before use: 如果为true 在每个连接被测试前都会服务这个连接 如果一个连接失败 那么将被丢弃 另一个连接将会被处理 如果所有连接都失败 一个新的连接将会被建立 否则将会抛出一个SQLException异常

  test after use: 如果为true 在每个连接被测试后都会服务这个连接 使其回到连接池中 如果连接失败 那么将被废弃

  trace: 如果为true 那么每个被执行的SQL语句将会在执行期被log记录(DEBUG LEVEL) 你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息

lishixinzhi/Article/program/Java/ky/201311/28572

Spring有几种配置方式

Spring有几种配置方式 ?
基于XML文件的配置 这种配置文件的格式常用《beans》开头,然后运用一系列的bean定义和专门的应用配置选项组成。 Spring XML配置方式是使用被Spring命名空间所支持的一些列XML的标签来实现的。
基于注解的配置 可以使用注解的方式来代替XML方式的bean元素的配置。这就是组件扫描,常用依赖注入的一些注解有: @Controller @Service @Autowired @RequestMapping @RequestParam @ModelAttribute @Cacheable @CacheFlush @Resource @PostConstruct @PreDestroy @Repository @Scope @SessionAttributes @InitBinder @Required @Qualifier
组件扫描: 容器会扫描base-package指定的包及其子包下面的所有类,如果该类有一些特定的注解,则纳入容器进行管理。
在类前面添加的一些特定的注解: @Component 通用注解 @Repository 持久层注解 @Service 业务层注解、 @Controller 控制层注解
基于Java的配置

spring配置文件中能够用到的bean的作用域都有哪些

singleton作用域:当把一个bean定义设置为singleton作用域是,spring
ioc容器中只会存在一个共享的bean实例,并且所有对bean的
请求,只要id与该bean定义相匹配,则只会返回该bean的同一实例。值得强调的是singleton作用域是spring中的缺省作用域。
prototype作用域:prototype作用域的bean会导致在每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getbean
()方法)时都会创建一个新的bean实例。根据经验,对有状态的bean应使用prototype作用域,而对无状态的bean则应该使用singleton作用
域。
对于具有prototype作用域的bean,有一点很重要,即spring不能对该bean的整个生命周期负责。具有prototype作用域的bean创建后交由调
用者负责销毁对象回收资源。
简单的说:
singleton
只有一个实例,也即是单例模式。
prototype访问一次创建一个实例,相当于new。
应用场合:
1.需要回收重要资源(数据库连接等)的事宜配置为singleton,如果配置为prototype需要应用确保资源正常回收。
2.有状态的bean配置成singleton会引发未知问题,可以考虑配置为prototype。

如何在spring配置hibernate和 mybatis 混用的配置

事务管理器统一用hibernate的。数据源需要用同一个。要注意hibernate的缓存,一般得保证至少一个事务不能混用,要混用也不能对同一个表混用(注意还得考虑orm关联加载)。

求证spring配置文件中配置dataSource

personDao如果继承了JdbcDaoSupport这个父类就会有dataSource属性,若没有继承什么,且里面没有dataSource属性则不能注入

关于spring配置到此分享完毕,希望能帮助到您。

spring配置(Java中如何获取Spring中配置的bean)

本文编辑:admin

更多文章:


维热纳尔密码翻译器(请问有谁知道古代密码学的发展过程)

维热纳尔密码翻译器(请问有谁知道古代密码学的发展过程)

今天给各位分享请问有谁知道古代密码学的发展过程的知识,其中也会对请问有谁知道古代密码学的发展过程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录请问有谁知道古代密码学的发展过程密码解密主要是用运用什么原理维热纳

2026年7月10日 23:15

手机老是出现failed(华为手机errconnectfailed)

手机老是出现failed(华为手机errconnectfailed)

“手机老是出现failed”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看手机老是出现failed(华为手机errconnectfailed)!本文目录华为手机errconnectfailed苹果手机为什么总出现失败怎么办啊

2025年12月31日 05:30

快递公司网站设计(中通快递logo的设计理念是什么)

快递公司网站设计(中通快递logo的设计理念是什么)

今天给各位分享中通快递logo的设计理念是什么的知识,其中也会对中通快递logo的设计理念是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录中通快递logo的设计理念是什么联邦快递网站的功能和特点物流公司网

2025年8月28日 15:45

mathematica10下载(mathematica免费下载地址)

mathematica10下载(mathematica免费下载地址)

大家好,今天小编来为大家解答以下的问题,关于mathematica10下载,mathematica免费下载地址这个很多人还不知道,现在让我们一起来看看吧!本文目录mathematica免费下载地址mathematica下载mathemati

2026年1月12日 23:00

catchphrase的意思(catchphrase是什么意思)

catchphrase的意思(catchphrase是什么意思)

大家好,今天小编来为大家解答以下的问题,关于catchphrase的意思,catchphrase是什么意思这个很多人还不知道,现在让我们一起来看看吧!本文目录catchphrase是什么意思phrase是什么意思catchphrase是什么

2025年7月19日 18:45

server作主语(英语you must set two server name values怎么翻译)

server作主语(英语you must set two server name values怎么翻译)

大家好,关于server作主语很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于英语you must set two server name values怎么翻译的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年2月25日 04:00

c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)

c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)

各位老铁们好,相信很多人对c语言求最大公约数和最小公倍数辗转相除法都不是特别的了解,因此呢,今天就来为大家分享下关于c语言求最大公约数和最小公倍数辗转相除法以及c语言求最大公约数和最小公倍数的问题知识,还望可以帮助大家,解决大家的一些困惑,

2025年6月24日 13:30

表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)

表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)

各位老铁们,大家好,今天由我来为大家分享表单大师下载表单大师app下载,以及眉山市幼儿报名登记表怎么下载下来的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2025年7月1日 03:15

webservice访问地址(浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL)

webservice访问地址(浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL)

大家好,webservice访问地址相信很多的网友都不是很明白,包括浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL也是一样,不过没有关系,接下来就来

2026年5月7日 20:30

count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)

count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)

本篇文章给大家谈谈count函数怎么用来统计单元格数量,以及EXCEL中如何统计此列有数字的单元格个数对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔

2025年9月23日 17:15

eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)

eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)

今天给各位分享JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本的知识,其中也会对JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本进行解释,如果能碰巧解决你现在面临的

2026年1月15日 13:30

奔驰e300可以插u盘听歌吗(奔驰E300怎么插U盘)

奔驰e300可以插u盘听歌吗(奔驰E300怎么插U盘)

今天给各位分享奔驰E300怎么插U盘的知识,其中也会对奔驰E300怎么插U盘进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录奔驰E300怎么插U盘奔驰e300如何插U盘听歌2011奔驰e300车上有插u盘的地方

2025年12月11日 03:45

模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)

模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)

大家好,关于模板制作检验批多少米一张很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于3000多米的围墙,每100米做一个检验批具体怎么做的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站

2026年9月17日 02:30

easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)

easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)

大家好,如果您还对easyuidatagrid 获取选中行数据到详情页不太了解,没有关系,今天就由本站为大家分享easyuidatagrid 获取选中行数据到详情页的知识,包括easyui datagrid 怎样获取点击行的数据的问题都会给

2025年6月21日 20:00

img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)

img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)

本篇文章给大家谈谈img格式打开,以及win7电脑如何打开img文件win7系统打开img文件的方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录win7电脑如何打开img文件win7系统打开img文件的方法img用什么软件

2025年9月24日 08:30

befarform是什么意思(be far form中的form什么意思 说详细些)

befarform是什么意思(be far form中的form什么意思 说详细些)

其实befarform是什么意思的问题并不复杂,但是又很多的朋友都不太了解be far form中的form什么意思 说详细些,因此呢,今天小编就来为大家分享befarform是什么意思的一些知识,希望可以帮助到大家,下面我们一起来看看这个

2025年12月14日 23:15

小时代2免费观看(小时代2电影的剧情简介谁知道)

小时代2免费观看(小时代2电影的剧情简介谁知道)

本篇文章给大家谈谈小时代2免费观看,以及小时代2电影的剧情简介谁知道对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录小时代2电影的剧情简介谁

2025年6月8日 05:45

js禁止页面前进和后退(禁止浏览器页面的前进和后退的方式)

js禁止页面前进和后退(禁止浏览器页面的前进和后退的方式)

今天给各位分享禁止浏览器页面的前进和后退的方式的知识,其中也会对禁止浏览器页面的前进和后退的方式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录禁止浏览器页面的前进和后退的方式用js如何控制 html5 vid

2025年10月26日 14:15

xml文件和db文件的区别(db文件是什么文件啊)

xml文件和db文件的区别(db文件是什么文件啊)

“xml文件和db文件的区别”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看xml文件和db文件的区别(db文件是什么文件啊)!本文目录db文件是什么文件啊db文件是什么格式文件类型有那些db文件是什么文件啊.db是date

2026年7月9日 17:15

两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)

两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)

各位老铁们好,相信很多人对两函数相加定义域怎么求都不是特别的了解,因此呢,今天就来为大家分享下关于两函数相加定义域怎么求以及两函数相加 定义区怎么求啊拜托了各位 谢谢的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目

2026年9月20日 15:30

近期文章

ilitate(imitate意思是)
2026-09-25 23:30:01
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索