- 浏览: 1588698 次
- 来自: 上海
文章分类
- 全部博客 (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>遍历(三十五)
下面采用java类来配置bean,前面都采用xml进行配置bean
采用xml
采用java类来配置bean
使用静态工厂方法创建bean
采用实例工厂方法创建bean
package cn.sh.springmvc.model; import cn.sh.springmvc.model.interfaces.Axe; import cn.sh.springmvc.model.interfaces.Person; public class Chinese implements Person { private Axe axe; private String name; public Chinese() { System.out.println("Spring 实例化"); } @Override public void useAxe() { System.out.println(axe.chop()); } public void setAxe(Axe axe) { this.axe = axe; } public Axe getAxe() { return axe; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
采用xml
<bean id="stoneAxe" class="cn.sh.springmvc.model.StoneAxe"> <property name="name" value="没有打磨的"/> </bean> <bean id="steelAxe" class="cn.sh.springmvc.model.SteelAxe"/> <!-- 第二阶段 --> <bean id="chinese" class="cn.sh.springmvc.model.Chinese"> <property name="axe" ref="stoneAxe"/> <property name="name" ref="刘诗诗"/> </bean>
采用java类来配置bean
package cn.sh.springmvc_java; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.ImportResource; import cn.sh.springmvc.model.SteelAxe; import cn.sh.springmvc.model.StoneAxe; import cn.sh.springmvc.model.interfaces.Axe; import cn.sh.springmvc.model.interfaces.Person; /** * 使用一个特殊的 配置类.来代替XML的配置 * @author Bin */ /* * @Configuration 用于修饰一个Java类 为配置类 * @Bean:修饰一个方法,将该方法的返回值,定义成容器中的一个bean; * @Value:修饰一个filed,用于给该字段 赋值 * @import:修饰一个Java配置类,用于向当前配置类中导入其他 Java配置类 * @Scope:修饰一个方法,定义该方法返回的Bean的生命域 * @Lazy:修饰一个方法,指定该方法返回的对应Bean是否需要延迟初始化 * @DepondOn:修饰一个方法,指定在初始化对应方法返回Bean之前,初始化指定Bean * */ @Configuration //用于修饰一个Java配置类 @ImportResource("classpath*:/applicationContent.xml") //可以看出来采用 XML 和 Java配置类混合,并一 Java配置类为"主" public class AppConfig { @Value("孙悟空") String personName; public Person person(){ Chinese p=new Chinese(); p.setAxe(stoneAxe()); p.setName(personName); return p; } @Bean(name="stoneAxe") @DependsOn("steelAxe") public Axe stoneAxe(){ return new StoneAxe(); } @Bean(name="steelAxe") public Axe steelAxe(){ System.out.println("create SteelAxe"); return new SteelAxe(); } } @Test public void test11(){ //采用Java配置类,来管理 依赖关系, 同时可以采用 XML 和 Java配置类混合 ApplicationContext act=new AnnotationConfigApplicationContext(AppConfig.class); StoneAxe saxe=act.getBean("stoneAxe",StoneAxe.class); System.out.println(saxe.chop()); Chinese c=act.getBean("chinese",Chinese.class); c.test(); }
使用静态工厂方法创建bean
package cn.sh.springmvc_java.factory; import cn.sh.springmvc.model.SteelAxe; import cn.sh.springmvc.model.StoneAxe; import cn.sh.springmvc.model.interfaces.Axe; /** * 使用静态工厂类,创建 Bean * */ public class AxeFactory { public static Axe getAxe(String arg){ if(arg.equals("stone")){ return new StoneAxe(); }else if(arg.equals("steel")){ return new SteelAxe(); } return null; } }
<!-- 使用静态工厂staticFactory 创建Bean 1:不需要为工厂类配置bean 2:可以直接使用 class来指定 工厂类 --> <bean id="stoneAxe_sf" class="cn.sh.springmvc_java.factory.AxeFactory" factory-method="getAxe" > <constructor-arg value="stone"/> <property name="name" value="小石头"/> </bean> <bean id="steelAxe_sf" class="cn.sh.springmvc_java.factory.AxeFactory" factory-method="getAxe" > <constructor-arg value="steel"/> <property name="name" value="不锈钢"/> </bean>
采用实例工厂方法创建bean
package cn.sh.springmvc_java.factory; import cn.sh.springmvc_java.American; import cn.sh.springmvc_java.China; import cn.sh.springmvc_java.People; /** * 使用实例工厂创建bean * */ public class PeopleFactory { public People getPeople(String type){ if(type.equalsIgnoreCase("chin")){ return new China(); }else{ return new American(); } } }
<!-- 使用 实例工厂 创建Bean 1:必须将工厂配置成一个Bean,因为 工厂需要实例化 2:必须使用 factory-bean 指定 工厂bean --> <bean id="peopleFactory" class="cn.sh.springmvc_java.factory.PeopleFactory"/> <bean id="china" factory-bean="peopleFactory" factory-method="getPeople"> <constructor-arg value="chin"/> </bean> <bean id="american" factory-bean="peopleFactory" factory-method="getPeople" scope="prototype" init-method="init" destroy-method="close"> <constructor-arg value="ame"/> </bean>
发表评论
-
spring-session 中的坑
2017-07-06 15:34 9994spring-session 配置 依赖 gradle ... -
Spring AspectJ Aop Annotation
2017-03-29 17:08 707import org.aspectj.lang.Proce ... -
spring 第13天 使用@scheduled注解执行定时任务
2015-01-06 23:11 54079我们使用spring的注解 @Scheduled 执行定时任务 ... -
Spring 第12天,事务传播属性和 隔离级别
2014-09-28 00:36 8121 事务的传播属性(Propagation) 1) REQ ... -
spring 第11天 quartz任务调度
2014-08-24 13:59 1142Quartz是一个强大的企业级任务调度框架,Spring中继承 ... -
spring 第10 天 AOP 面向切面
2014-08-21 00:08 1749AOP(Aspect Orient Programming ... -
spring 第9天 Resurce 资源访问
2014-08-17 22:20 1864Spring Resource接口 spring提供的Reso ... -
spring 第8天 Spring 注解
2014-08-17 15:33 1471spring注解 @Component:标注一个普通的sp ... -
spring 第7天 Bean,BeanFactory处理器,配置器
2014-08-16 21:46 1236spring 两种后处理器 第一种,Bean 后处理器 对容器 ... -
spring 第6天SpEL,P命名空间,Util Schema
2014-08-13 22:52 1311使用p名称空间配置属性 ... -
spring 第5天不同作用域的bean,注入Field,方法返回值
2014-08-11 22:31 2110协调作用域不同步的bean 问题是;当一个singleton的 ... -
spring 第4天bean继承,init,destory-method
2014-08-10 17:54 1647深入理解Spring容器中的b ... -
spring 第2天,bean作用域,自动注入集合
2014-08-06 22:16 1931sping容器中的Bean <!---beans的全 ... -
spring 第1天 IOC,DI,国际化,容器事件
2014-08-04 21:27 13941.构造注入(就是使用 构 ... -
SpringMVC 注解 和非注解
2014-01-26 10:29 18017首先看看非注解的项目结构 在web.xml文件 配置spr ... -
详解spring 每个jar的作用
2013-11-19 23:54 3909spring.jar 是包含有完整 ... -
Spring配置Hibernate事务
2013-11-10 13:45 1216为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事 ... -
Spring 中引用Properties文件
2013-08-29 14:39 10652其中部分配置信息(邮件发送相关): #邮件发送的相关配置 ... -
Spring IOC控制反转 依赖注入DI
2012-12-15 09:37 2328目录 1.使用IOC控制反转 中的DI依赖注入 手工注入 ... -
Spring IOC控制反转 依赖注入DI
2012-12-14 16:23 8目录 1.使用IOC控制反转 中的DI依赖注入 (两种配置方式 ...
相关推荐
在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...
本文将深入探讨"使用java类配置Bean"这一主题,特别是在SIA实战项目中的应用。 首先,让我们理解Spring框架的核心概念——Bean。在Spring中,Bean是应用程序中的对象,由Spring容器管理其生命周期,包括创建、初始...
基于Java类的配置Bean是Spring实现IOC的一种方式,与XML配置相比,提供了更灵活和类型安全的选项。 在Spring中,我们可以通过编写Java类来定义Bean的配置,这种配置方式通常被称为JavaConfig。这种方式的优点在于...
它提供了强大的依赖注入(DI)机制,使得我们可以方便地管理和使用Bean。然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细...
java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...
SSH是Java Web开发中的三个重要框架,分别是Struts2、Hibernate和Spring,它们共同构建了一个强大的MVC(Model-View-Controller)架构。本项目整合了这三个框架,并使用XML配置来管理各个组件,实现了基本的CRUD...
spring 重新动态加载数据库或xml中的bean,可以不用重启tomcat
Spring框架提供了IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)等核心特性,通过XML配置文件管理Bean的生命周期和依赖关系。Hibernate则是一个强大的ORM框架,能够将...
- **通过`@Configuration`和`@ComponentScan`**:Spring 3.0引入了基于Java的配置,允许在Java类中定义Bean并扫描特定包下的组件。 - **使用`Prototype`作用域的Bean**:如果一个Bean是Prototype作用域,每次请求...
Spring 框架中使用 XML 配置 Bean 是一种常见的方式,它可以帮助开发者轻松地管理 Bean 的依赖关系和生命周期。在本文中,我们将详细介绍 Spring 中使用 XML 配置 Bean 的细节。 Bean 配置 在 Spring 中,Bean ...
这个项目的源码演示了如何使用SAXBuilder解析XML配置,然后模拟Spring的bean管理和依赖注入。通过学习和理解这个示例,你将能够更好地掌握Spring的XML配置原理,以及如何在不使用Spring框架的情况下,自行实现类似的...
本文将详细介绍关于Spring XML配置文件的12个最佳实践,这些实践不仅有助于提高配置文件的可读性和可维护性,还能帮助开发者更好地理解和使用Spring框架。 #### 最佳实践 1. **避免使用自动绑定(Autowiring)** ...
2. **注解配置**:随着Java注解的发展,Spring引入了基于注解的配置,可以直接在类或方法上使用`@Component`,`@Service`,`@Repository`和`@Controller`等注解声明Bean。同时,使用`@Autowired`进行依赖注入。 3. ...
在本篇【从零开始学Spring Boot】系列教程中,我们将深入探讨如何在Spring Boot项目中导入并使用XML配置。Spring Boot以其简化Spring应用的初始搭建以及开发过程而闻名,通常推崇的是Java配置而非XML配置。然而,在...
在Spring框架中,XML配置是早期最常用的配置方式,它提供了详细且灵活的方式来定义和管理Bean的生命周期。本文将深入探讨Spring如何通过XML配置来装配Bean。 首先,要创建XML配置,你需要创建一个新的XML文件,通常...
3. **Spring Java Config**:在现代的Spring应用中,XML配置逐渐被Java配置取代。我们可以创建一个配置类,然后在其中声明bean,使用`@ComponentScan`扫描包含普通类的包,这样Spring就能自动管理普通类。同时,也...
3. 使用简化格式:Spring XML配置支持简化语法,减少子元素的使用,如将`<value>`和`<ref>`作为属性直接嵌入`<property>`和`<constructor-arg>`标签中。这有助于减少冗余代码,提高配置文件的可读性。 4. 尽量使用`...
首先,我们需要创建一个`ApplicationContext`实例,这通常通过加载配置文件(如XML或Java配置类)来实现。以下是一个基于XML配置的例子: ```java ClassPathXmlApplicationContext context = new ...
java spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取bean...