欢迎来到我的个人网站。交流请加我好友: 919201148。欢迎关注公众号或视频号:蜗牛互联网
Solo  当前访客:2 开始使用

白色蜗牛的互联网心得

我要一步一步往上爬,在最高点乘着叶片往前飞

标签: bean (12)

使用@Autowire注解与自动装配

2016-06-01 19:20:12 huayonglun
0  评论    207  浏览

@Autowired注解 Autowire 默认是按类型匹配 @ Autowire 如果你要修改 Autowire,按名称匹配可以 @Autowired @Qualifier(“MypersonDao”) ,如果在beans.xml中没有发现有这个名字的bean,则会有异常 @Autowired(required=true) @Qualifier(“MypersonDao”), 表示这个bean必须注入值,不然报错 用于字段上 @Autowired private PersonDao personDao; 用于属性的setter方法上 @Autowired public void setPersonDao(PersonDao personDao) { this.personDao = personDao; } 扩展 @Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false,如果我们向使用按名称装配,可以结合@Qualifier注解一起使用。如下: @Autowired @Qualifier....

, , ,

Spring管理的Bean的生命周期

2016-05-28 18:20:12 huayonglun
0  评论    216  浏览

Bean实例化之后的初始化工作 实现接口 org.springframework.beans.factory.InitializingBean 接口指定一个单一的方法: void afterPropertiesSet() throws Exception; 因此,你可以简单地实现上述接口和初始化工作可以在 afterPropertiesSet() 方法中执行,如下所示: public class PersionServiceBean implements InitializingBean { public void afterPropertiesSet() { // do some initialization work } } XML配置 在基于 XML 的配置元数据的情况下,你可以使用 init-method 属性来指定带有 void 无参数方法的名称。例如: <bean id="persionService" class="com.liuyong666.service.impl.PersionServiceBean" init-method="init"....

, ,

Spring装配基本属性的原理

2016-05-31 17:20:12 huayonglun
0  评论    213  浏览

依赖注入对象方式二 使用内部bean,但该bean不能被其他bean使用 <bean id="personService" class="com.liuyong666.service.impl.PersonServiceBean"> <property name="personDao"> <bean class="com.liuyong666.dao.impl.PersonDaoBean"></bean> </property> </bean> 两种方式的优缺点比较 使用ref的方式,引用的bean可以被多个bean引用 而采用内部bean的方式,内部bean只能为那个bean里面那那个属性使用。 前面都是注入依赖对象,那么如何注入基本类型呢? 例如,在PersonServiceBean里面添加一个String类型的name属性和Integer类型的id属性,可以这样注入值: <property name="name" value="huayonglun"></property&g....

, , ,

用@Resource注解完成属性装配

2016-06-01 18:20:12 huayonglun
0  评论    215  浏览

bean的注入方式有3种: 第一种:使用构造器注入 第二钟:使用属性setter方法注入 第三种:使用Field注入(用于注解方式) 使用注解的方式完成bean的注入 在java代码中使用@Autowired或@Resource注解方式进行装配,这两个注解的区别是: @Autowired 默认按类型装配。是spring的api。 @Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。但一旦指定了name属性,就只能按名称装配了。是jdk的api。使用它可以不依赖spring的特性。 @Resource 1.修改beans.xml <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.sp....

, , ,

【Spring 系列】二、spring三种实例化bean的方式

2016-05-27 18:17:12 huayonglun
0  评论    213  浏览

【Spring 系列】二、spring三种实例化bean的方式 beans.xml中配置 <!-- 三种实例化bean的方式 --> <!-- 1.使用类构造器实例化 --> <bean id="personService" class="com.liuyong666.service.impl.PersonServiceBean"></bean> <!-- 2.使用静态工厂方法实例化 --> <bean id="personService2" class="com.liuyong666.service.impl.PersonServiceBeanFactory" factory-method="createPersonServiceBean"></bean> <!-- 3.使用实例工厂方法实例化 --> <bean id="personServiceFactory" class="com.liuyong666.service.impl.PersonServiceBeanFacto....

, ,

Spring如何装配各种集合类型的属性

2016-05-31 18:20:12 huayonglun
0  评论    212  浏览

首先在bean里面声明这些属性,并设置相应的更改器方法和访问器方法 private Set<String> sets = new HashSet<>(); private List<String> lists = new ArrayList<>(); private Properties properties = new Properties(); private Map<String, String> maps = new HashMap<> (); 接着在beans.xml做如下配置 <property name="sets"> <set> <value>set第一个</value> <value>set第二个</value> <value>set第三个</value> </set> </property> <property name="lists"> <set> ....

, , ,

让Spring自动扫描和管理Bean

2016-06-02 19:20:12 huayonglun
0  评论    215  浏览

为什么需要自动扫描 通过在classpath自动扫描方式把组件纳入spring容器中管理 之前我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找以及维护起来也不太方便。 如何实现自动扫描 Spring2.5为我们引入了组件自动扫描机制,他可以在类路径底下寻找标注了@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。 它的作用和在xml文件中使用bean节点配置组件时一样的。要使用自动扫描机制,我们需要打开以下配置信息 <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:schemaLo....

, , ,

模拟spring自定义上下文获取bean

2016-05-27 18:20:12 huayonglun
0  评论    217  浏览

模拟spring自定义上下文获取bean 利用dom4j解析 设置两个域,一个List存放BeanDefinition,一个Map存放实例化对象的映射 构造器传配置文件进去,依次执行两个方法 方法1,读取配置文件,把解析出的BeanDefinition放入List中 方法2,完成bean的实例化,把实例化对象的映射放入Map中 定义获取bean实例的方法,从Map中根据实例名返回Object对象 import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.XPath; import org.dom4j.io.SAXReader; /** * 自己的容器 * @author Administrator * */ public class MyClassPathXM....

, ,

Spring依赖注入的原理

2016-05-29 18:20:12 huayonglun
0  评论    213  浏览

使用Spring,可以使用里面的控制反转把依赖对象交给Spring管理,并把依赖对象通过容器注入到组件内部。 那么在Spring里面,该如何把对象注入到组件内部呢? 创建一个PersonDao对象,并把这个对象注入到PersonServiceBean中 依赖注入使用 PersonDaoBean package com.liuyong666.dao.impl; import com.liuyong666.dao.PersonDao; public class PersonDaoBean implements PersonDao{ @Override public void add(){ System.out.println("执行PersonDaoBean里的add()方法"); } } 抽取接口 package com.liuyong666.dao; public interface PersonDao { public abstract void add(); } 说明 接口跟实现类不要放一块,接下来,如何将PersonDaoBean对象注入进PersonServiceBea....

, , ,

配置Spring管理的bean的作用域

2016-05-28 18:20:12 huayonglun
0  评论    211  浏览

配置Spring管理的bean的作用域 .singleton 在每一个spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init = "true"来延迟初始化bean,这时候,只有第一次获取bean才会初始化bean。如下: <bean id="persionService" class="com.liuyong666.service.impl.PersionServiceBean" lazy-init = "ture"/> 如果想对所有bean都应用延迟初始化,可以在节点beans设置default-lazy-init = “ture” ,如下: <beans default-lazy-init = "ture".../> .prototype 每次从容器获取bean都是新的对象。 在第一次获取bean时初始化 <bean id="persionService" class="com.liuyong666.service.impl.PersionSe....

, ,

使用构造器装配属性

2016-06-01 17:00:12 huayonglun
0  评论    212  浏览

以前我们都是使用setter方法给属性注入值的,现在我们来看看另外一种注入方法:构造器注入 步骤 1.改写PersonServiceBean,为注入的属性加上构造方法 public PersonServiceBean(PersonDao personDao, String name) { this.personDao = personDao; this.name = name; } 2.配置beans.xml,其中配置了一个依赖属性和一个基本的String类型 <!-- 使用构造器装配属性 --> <bean id="personDao" class="com.liuyong666.dao.impl.PersonDaoBean"></bean> <bean id="personService" class="com.liuyong666.service.impl.PersonServiceBean"> <constructor-arg index="0" ref="personDao" type="com.liuyong666.....

, , ,

【Spring 系列】一、如何从spring中获取bean

2016-05-27 16:20:12 huayonglun
0  评论    209  浏览

【Spring 系列】一、如何从spring中获取bean 导包 spring要管理的类信息 package com.liuyong666.service.impl; ​ import com.liuyong666.service.PersonService; public class PersonServiceBean implements PersonService { @Override public void save(){ System.out.println("我是save()方法"); } } spring面向接口编程,该类对应的接口 public interface PersonService { ​ public abstract void save(); ​ } 配置beans.xml文件,文件在src目录下 <bean id="personService" class="com.liuyong666.service.impl.PersonServiceBean"></bean> 使用spring获取bean @Test ​ ....

, ,
TOP