- 浏览: 1592234 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
sping容器中的Bean
说说Bean的别名问题,name,alias
bean的作用域
自动注入Bean
给bean注入集合属性
Bean的组合属性赋值
spring对Bea没有特殊要求,但是我们建议满足一下几个原则
<!---beans的全局属性设置--> <beans> default-lazy-init:指定该beans下的所有bean 默认延迟初始化行为 default-merge:指定beans下的所有bean默认的mege行为 default-autowire:指定beans下的所有bean的默认自动装配行为 default-autowire-candidates:指定beans下所有bean默认是否为自动装配的候选bean default-init-method:指定beans下的所有bean默认初始化的方法 default-destory-method:指定beans下的所有bean默认 回收方法 </beans> <!---去掉default 后就是bean的属性,这样就可以设置单个bean的属性--> <bean id="bean1" class="lee.test1"> <constructor-args values="hello"/> <constructor-args values="23"/> </bean> <!--上面的bean可以配置构造函数为两个string,或者 一个 string 一个 int 这种情况下可以配置 --> <constructor-args values="23" type="int"/>
说说Bean的别名问题,name,alias
<!--定义一个能够获取spring容器的bean --> <bean id="myContent" name="CH,CN" class="cn.sh.springmvc.applicationContextAware.MyContent" lazy-init="true"> </bean> <alias name="CH" alias="ZG"/> <alias name="chinese" alias="ZH"/> <!-- 别名之间还可以传承 --> <alias name="ZH" alias="HH"/>
//测试spring name alias 别名的 创建对象 @Test public void test3() { ApplicationContext act=new ClassPathXmlApplicationContext("classpath*:applicationContent.xml"); MyContent p=act.getBean("chinese",MyContent.class); System.out.println(p.getContext()); System.out.println(act==p.getContext()); p=act.getBean("ZH",MyContent.class); System.out.println(p.getContext()); System.out.println(act==p.getContext()); p=act.getBean("CH",MyContent.class); System.out.println(p.getContext()); System.out.println(act==p.getContext()); p=act.getBean("ZG",MyContent.class); System.out.println(p.getContext()); System.out.println(act==p.getContext()); p=act.getBean("CN",MyContent.class); System.out.println(p.getContext()); System.out.println(act==p.getContext()); p=act.getBean("HH",MyContent.class); System.out.println(p.getContext()); System.out.println(act==p.getContext()); }
bean的作用域
<!-- singleton:默认值 单例模式 prototype:原型 每次都会创建对象 下面只在web中采用用 request (prototype) :比如struts2中 action session global session: application --> <!--原型 --> <bean id="userService2" class="cn.sh.springmvc.service.user.UserService" scope="prototype"> <constructor-arg name="age" value="18" type="int"/> <!--基本类型值 --> <property name="name" value="wawa"/> <property name="age" value="1"/> <!--douvle值 --> <property name="salary"> <value>2165.5</value> </property> <!--注入嵌套bean 不让spring容器访问到 --> <property name="userdao"> <bean class="cn.sh.springmvc.dao.UserDAO"/> </property> <property name="userdao1" ref="userdao"/> <property name="userdao2"> <ref local="userdao"/> </property> </bean>
自动注入Bean
<!-- 此Bean不参与自动装配 --> <bean id="userdao" class="cn.sh.springmvc.dao.UserDAO" autowire-candidate="false"/> <bean id="userService3" class="cn.sh.springmvc.service.user.UserService" autowire="default"> <property name="userdao" ref="userdao"/> </bean> <!-- 默认不在用自动 注入 --> <bean id="userService4" class="cn.sh.springmvc.service.user.UserService" autowire="no"> <property name="userdao"> <ref local="userdao"/> </property> </bean> <!-- 根据 setName()--> <bean id="userService5" class="cn.sh.springmvc.service.user.UserService" autowire="byName"> </bean> <!-- 根据 setName(Type type) 如果spring 容器中有多个 Type 的bean 会出异常 --> <bean id="userService6" class="cn.sh.springmvc.service.user.UserService" autowire="byType"> </bean> <!-- 根据 类中的构造函数进行装配 --> <bean id="userService8" class="cn.sh.springmvc.service.user.UserService" autowire="constructor"> </bean> <!--用于spring2.5 ,spring3.0 交给spring自动帮我我们抉择 是采用 constructor 或者 byType <bean id="userService9" class="cn.sh.springmvc.service.user.UserService" autowire="autodetect"> </bean> -->
给bean注入集合属性
<bean id="chinese" class="cn.sh.springmvc.model.Chinese"> <property name="schools"> <list> <value>小学</value> <value>中学</value> <value>大学</value> </list> </property> <property name="scores"> <map> <entry key="数学"><value>87</value></entry> <entry key="英语" value="89"/> <entry key="语文" value="82"/> </map> </property> <property name="phaseAxes"> <map> <entry key="原始社会" value-ref="stoneAxe"/> <entry key="农业社会" value-ref="steelAxe"/> </map> </property> <!-- properties 设置 --> <!-- <property name="health"> <props> <prop key="血压">正常</prop> <prop key="身高">175</prop> </props> </property> --> <!-- properties 的另一种 设值方法 key value 只能是 英文和 数组--> <property name="health"> <value> pressure=normal height=175 </value> </property> <property name="axes"> <set> <value>普通的字符串</value> <bean class="cn.sh.springmvc.model.SteelAxe"/> <ref local="stoneAxe"/> </set> </property> <property name="books"> <list> <value>Struts2 权威指南</value> <value>轻量级JavaEE企业级应用</value> <value>疯狂java讲义</value> </list> </property> <property name="favourity"> <array> <value>Struts2 权威指南</value> <value>轻量级JavaEE企业级应用</value> <value>疯狂java讲义</value> </array> </property> </bean>
Bean的组合属性赋值
<!--组合属性赋值 --> <bean id="userChild1" parent="userParent"> <!--组合属性赋值的时候,只有最后一个属性可以为null,其他属性都不能为null aa.bb.cc.dd : aa bb cc 都不能为null dd可以为null --> <property name="chinese.books"> <array> <value>javaEE</value> <value>JS</value> <value>Oracle</value> </array> </property> </bean>
spring对Bea没有特殊要求,但是我们建议满足一下几个原则
1.尽量为每个Bean提供无参数构造函数 2.接受构造注入的Bean,应该提供构造函数 3.接受设值注入的bean,要提供setting方法,但并不要提供getter方法 4.Bean的id命名首字母尽量小写
发表评论
-
spring-session 中的坑
2017-07-06 15:34 10001spring-session 配置 依赖 gradle ... -
Spring AspectJ Aop Annotation
2017-03-29 17:08 714import org.aspectj.lang.Proce ... -
spring 第13天 使用@scheduled注解执行定时任务
2015-01-06 23:11 54099我们使用spring的注解 @Scheduled 执行定时任务 ... -
Spring 第12天,事务传播属性和 隔离级别
2014-09-28 00:36 8201 事务的传播属性(Propagation) 1) REQ ... -
spring 第11天 quartz任务调度
2014-08-24 13:59 1153Quartz是一个强大的企业级任务调度框架,Spring中继承 ... -
spring 第10 天 AOP 面向切面
2014-08-21 00:08 1757AOP(Aspect Orient Programming ... -
spring 第9天 Resurce 资源访问
2014-08-17 22:20 1877Spring Resource接口 spring提供的Reso ... -
spring 第8天 Spring 注解
2014-08-17 15:33 1476spring注解 @Component:标注一个普通的sp ... -
spring 第7天 Bean,BeanFactory处理器,配置器
2014-08-16 21:46 1244spring 两种后处理器 第一种,Bean 后处理器 对容器 ... -
spring 第6天SpEL,P命名空间,Util Schema
2014-08-13 22:52 1323使用p名称空间配置属性 ... -
spring 第5天不同作用域的bean,注入Field,方法返回值
2014-08-11 22:31 2120协调作用域不同步的bean 问题是;当一个singleton的 ... -
spring 第4天bean继承,init,destory-method
2014-08-10 17:54 1659深入理解Spring容器中的b ... -
spring 第3天使用java类和XML配置bean
2014-08-09 16:51 1511下面采用java类来配置bean,前面都采用xml进行配置be ... -
spring 第1天 IOC,DI,国际化,容器事件
2014-08-04 21:27 14001.构造注入(就是使用 构 ... -
SpringMVC 注解 和非注解
2014-01-26 10:29 18031首先看看非注解的项目结构 在web.xml文件 配置spr ... -
详解spring 每个jar的作用
2013-11-19 23:54 3915spring.jar 是包含有完整 ... -
Spring配置Hibernate事务
2013-11-10 13:45 1223为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事 ... -
Spring 中引用Properties文件
2013-08-29 14:39 10664其中部分配置信息(邮件发送相关): #邮件发送的相关配置 ... -
Spring IOC控制反转 依赖注入DI
2012-12-15 09:37 2334目录 1.使用IOC控制反转 中的DI依赖注入 手工注入 ... -
Spring IOC控制反转 依赖注入DI
2012-12-14 16:23 8目录 1.使用IOC控制反转 中的DI依赖注入 (两种配置方式 ...
相关推荐
Spring中的Bean可以有多种作用域,包括`singleton`(单例)、`prototype`(原型)、`session`(会话)、`request`(请求)等。`singleton`是最常见的一种,表示在整个应用中只有一个实例。`prototype`则每次请求...
##### 1.5 Bean作用域 - **1.5.1 单例作用域** 单例作用域是最常用的作用域之一,意味着在Spring IoC容器中只存在一个Bean实例。 - **1.5.2 原型作用域** 原型作用域意味着每次请求都会创建一个新的Bean实例。...
#### 四、Bean作用域 - **单一实例作用域(Singleton)** - 单个Bean定义在Spring IoC容器中只有一个实例。 - **原型作用域(Prototype)** - 每次请求都会创建一个新的实例。 - **单例Bean与原型Bean的依赖** ...
**3.5 Spring支持哪些Bean作用域?** Spring支持的作用域包括: - **singleton** - **prototype** - **request** - **session** - **globalSession** **3.6 Singleton Bean在Spring框架中是否线程安全?** ...
- **单例模式**:通过`singleton`作用域确保一个Bean在整个Spring IoC容器中只有一个实例。 - **代理模式**:用于实现AOP,通过动态代理技术实现。 - **装饰者模式**:通过Bean后处理器对Bean进行增强。 - **观察者...
2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步...
这种情况下,内部Bean通常采用singleton作用域。 #### 第十三章:Spring注入集合 - **注入集合类型:** - 可以将List、Set、Map等集合类型注入到Bean中。 #### 第十四章:Spring Bean自动注入 - **自动装配模式:...
- 注入集合类型:可以注入List、Set等集合类型。 - 注入内部bean:可以在一个bean中注入另一个完整的bean。 - 注入null和空字符串:Spring支持直接注入null和空字符串。 - **bean定义继承**:允许子bean继承父...
2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 2.7.1 问题 72 2.7.2 解决方案 72 2.7.3 工作原理 72 2.8 用Java Config简化XML配置 ...
2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 2.7.1 问题 72 2.7.2 解决方案 72 2.7.3 工作原理 72 2.8 用Java Config简化XML配置 ...
- **Bean的作用域**:Spring框架提供了几种不同的Bean作用域,包括Singleton、Prototype等。选择合适的作用域对于内存管理和线程安全性至关重要。 #### 第三章:配置Bean - **Bean定义继承**:Bean定义可以继承...
Bean可以有多种作用域,如单例(singleton)、原型(prototype)、请求(request)、session等。默认情况下,Bean是单例的: ```xml <bean id="exampleBean" class=...
Spring的bean作用域(scope)定义了bean的生命周期,包括单例(singleton)、原型(prototype)等。懒加载(lazy-init)和默认的懒加载设置可以控制bean何时被初始化。另外,init-method和destroy-method用于指定bean的初始...
4.8.3 Web应用环境相关的Bean作用域 4.8.4 作用域依赖问题 4.9 FactoryBean 4.10 基于注解的配置 4.10.1 使用注解定义Bean 4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命...
- **Bean的作用域**:定义Bean的生存周期,例如singleton(单例)、prototype(原型)等。 #### 四、Spring的AOP **面向切面编程(Aspect-Oriented Programming, AOP)**是一种编程范式,用于分离横切关注点...
文档详细介绍了如何通过XML配置文件进行setter注入和构造器注入,以及如何设置bean的id和name,简单属性的注入,bean的作用域(如singleton、prototype等),集合注入,以及自动装配(autowire)的方式,如byName和...
- **bean的作用域**:定义bean的生命周期,如singleton、prototype等。 - **bean的生命周期**:包括初始化和销毁的方法回调。 - **基于XML自动装配**:通过`autowire-candidate`属性实现自动装配。 #### 基于注解...
5. **Bean的作用域**:Spring中的Bean可以有不同的作用域,如单例(Singleton)、原型(Prototype)等。 #### Bean的生命周期 Spring管理的Bean具有明确的生命周期,主要包括初始化和销毁两个阶段。 1. **初始化*...
#### 第二课:JDOM 的基本使用 - **JDOM 介绍**:JDOM 是 Java Document Object Model 的缩写,是一种用于处理 XML 文件的轻量级工具包。 - **关键概念**:理解`Document`、`Element`、`Attribute`等基本元素及其...