【Spring】【IOC】【Spring容器注入Bean对象的四种方式】【Spring中注入bean对象的注解】
2017-12-29 20:15
1411 查看
简介
Spring的IOC功能,就是对象的实例化工作,由Spring容器完成.
Bean对象注意点
需要无参构造器;默认情况下,生成的实例为单例;
在配置文件中的
<Bean>,其实就是实例.
-
Spring容器注入Bean对象.
1.最常用的方式.
对象是类创建出来的<bean id="employeeDAO" class="dao.impl.EmployeeDAOImpl"/>
2.静态工厂方法
User对象是由工厂的方法creatUser()创建出来的:User user=工厂.creatUser();creatUser()方法中,是return new User();且是静态方法
<bean id="user" class="工厂全限名" factory-method="creatUser" />
3.实例工厂方法
User对象是由工厂的对象的方法creatUser()创建出来的:User user=工厂对象.creatUser();creatUser()方法中,是return new User();且是实例方法
<bean id="工厂" class="工厂全限名"> <bean id="user" class="User全限名" factory-bean="工厂Bean的id" factory-method="creatUser" />
4.实现Spring的接口FactoryBean<T>
在声明Hibernate的SessionFactory的Bean时候,使用的类是LocalSessionFactoryBean,而不是Hibernate的的本身的工厂类<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"></bean>
LocalSessionFactoryBean的实质内容(简写)
public class LocalSessionFactoryBean implements FactoryBean<SessionFactory>{ //实现方法 返回sessionFactory对象 public SessionFactory getObject() { return Configuration对象.buildSessionFactory(); //Hibernate框架就是这样子获取session工厂对象的. } //实现方法 返回sessionFactory.class public Class<?> getObjectType() { return SessionFactory.class; } }
在Spring加载Bean的代码
//判断生成的bean对象是否继承FactoryBean if(oldBean instanof FactoryBean){ FactoryBean factory=(FactoryBean)Bean;//强转类型 Object newBean=factory.getObject(); //获取bean }
好处:在LocalSessionFactoryBean 中重新加强的SessionFactory在Spring中的功能,可以有很多属性可以在Spring的配置文件中配置
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!-- 注入连接池 --> <property name="dataSource" ref="dataSource"/> <!-- Hibernate的配置信息 --> <property name="hibernateProperties"> <value> hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.cache.use_second_level_cache=true </value> </property> <!-- Hibernate的映射文件地址 --> <property name="mappingDirectoryLocations"> <list> <value>classpath:domain</value> </list> </property> </bean>
Spring容器注入Bean对象的注解.
不可用于静态工厂,实例工厂.FactoryBean接口的方式注解:(作用相同,将标签下的类,存入Spring容器)
- @Component ——工具类,如AOP的通知类
- @Service———– 服务类
- @Repository——- dao类
- @Controller——– Action类
<!--声明使用该注解,及扫描位置--> <context:component-scan base-package="dao.impl"/>
@Repository("user") //注入进容器,且id=user @Scope("propertype") //声明作用域(Action类才会用) public class User{ @PostConstruct //初始化方法 public void init() { System.out.println("初始化"); } @PreDestroy //销毁方法 public void destroy() { System.out.println("初始化"); } }
相关文章推荐
- 第36天(就业班) spring引入、专业术语、spring六大模块、bean创建对象的细节、IOC容器、对象依赖关系、自动装配、注解方式
- Spring2.5 IoC之bean的四种注入方式(理论篇)
- Spring2.5 IoC之bean的四种注入方式(实践篇)
- 原始方式:spring四种依赖注入方式 |注解方式:Spring零配置通过注解实现Bean依赖注入
- Spring_IOC注解方式装配Bean对象
- Spring(三):IoC容器装配Bean(xml配置方式和注解方式)
- ######【spring属性注入(Ioc的DI)总结】:注解方式属性注入,属性名任意.=for理解:Aop注入代理对象时,注入被增强类对象时,属性名为proxy(自定义)。
- 一起写框架-Ioc内核容器的实现-对象的调用-@Bean注解注入容器的对象(十二)
- JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
- SpringIOC容器创建对象及依赖注入的几种方式
- Spring2.5 IoC之bean的四种注入方式(实践篇)
- spring IOC容器创建对象的三种方式
- Spring:IOC释义(Bean容器、注解、依赖注入)
- spring四种依赖注入方式 ( 依赖注入DI+ 控制反转IOC的原理)
- 关于SpringBoot获取IOC容器中注入的Bean(推荐)
- Spring注入方式四:通过扫描类路径来把类对象注入Spring容器
- Spring 框架 详解 (四)------IOC装配Bean(注解方式)
- spring IOC容器实例化Bean的方式与RequestContextListener应用
- Spring中bean注入初始化方式(通过注解@Configuration @bean)
- spring IOC容器实例化Bean的方式与RequestContextListener应用