Spring_IOC配置与应用学习笔记
来源:互联网 发布:淘宝哪家赌石好 编辑:程序博客网 时间:2024/06/14 21:12
1 Spring注入类型
setter(重要)
构造方法(使用的非常少)
接口注入(可以忘记)
构造方法(使用的非常少)
接口注入(可以忘记)
setter注入类型Setter Injection 就是在bean中使用setXXX方法进行注入来
在bean类中,成员属性需要setXXX方法如下:
public class UserService { private UserDao userDao = new UserDaoImpl(); public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void add(User u){userDao.save(u);}}
spring配置文件如下:
<bean id="u" class="com.code.dao.impl.UserDaoImpl" > </bean> <bean id="userService" class="com.code.service.UserService"> <property name="userDao" ref="u"/><!-- 这里的ref表示参考id=u的那个bean --> <!--或是下面的方式 <property name="userDao"> <ref bean="u"></ref> </property> --> </bean>
2Spring<bean>标签的id和name属性区别
id: 一个bean的唯一标识 , 命名格式必须符合XML ID属性的命名规范
name: 可以用特殊字符,并且一个bean可以用多个名称:name=“bean1,bean2,bean3” ,用逗号或者分号或者空格隔开。如果没有id,则name的第一个名称默认是id
name: 可以用特殊字符,并且一个bean可以用多个名称:name=“bean1,bean2,bean3” ,用逗号或者分号或者空格隔开。如果没有id,则name的第一个名称默认是id
3Spring<bean>简单属性的注入
<bean id="u" class="com.code.dao.impl.UserDAOImpl"><property name="daoId" value="110"/><property name="daoString" value="220"></property></bean>
4<bean中的scope属性
singleton 单例 从spring容器中取出的对象都是一个对象
<bean id="userService" class="com.code.service.UserService" autowire="byName" scope="singleton">
prototype 每次创建新的对象
<bean id="userService" class="com.code.service.UserService" autowire="byName" scope="prototype">
5 集合注入
package com.code.dao.impl;import java.util.List;import java.util.Map;import java.util.Set;import com.code.dao.UserDAO;import com.code.model.User;public class UserDAOImpl implements UserDAO {private int daoId;private String daoString;private Set<String> sets;private List<String> lists;private Map<String, String> maps;public int getDaoId() {return daoId;}public void setDaoId(int daoId) {this.daoId = daoId;}public String getDaoString() {return daoString;}public void setDaoString(String daoString) {this.daoString = daoString;}public Set<String> getSets() {return sets;}public void setSets(Set<String> sets) {this.sets = sets;}public List<String> getLists() {return lists;}public void setLists(List<String> lists) {this.lists = lists;}public Map<String, String> getMaps() {return maps;}public void setMaps(Map<String, String> maps) {this.maps = maps;}public void save(User user) {//Hibernate//JDBC//XML//NetWorkSystem.out.println("user saved!");}@Overridepublic String toString(){return "=====daoId======> " + daoId;}}
<bean id="userDAO1" class="com.code.dao.impl.UserDAOImpl"><property name="daoId" value="110"/><property name="daoString" value="220"></property><property name="lists"><list><value>990</value><value>991</value><value>992</value><value>993</value></list></property><property name="maps"><map><entry key="a" value="880"/><entry key="b" value="881"/><entry key="c" value="882"/><entry key="d" value="883"/></map></property></bean>
6 AutoWire 自动装配
<bean 属性中autowire
<bean id="userDAO" class="com.code.dao.impl.UserDAOImpl">
<bean id="userService" class="com.code.service.UserService" autowirre="ByName"/>
当UserService中有UserDAO的对象为userDAO时,通过该属性autowirre="ByName"自动注入到对象userService中。
相应的autowirre="ByType"在spring容器中查找类型为UserDAO的对象,如果超过一个对象,报错。
7 生命周期 LifeCycle
lazy-init
ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化(也就是依赖注入)。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。
<bean id="testBean" class="com.code.TestBean"> 该bean默认的设置为:
<bean id="testBean" class="com.code.TestBean" lazy-init="false"> lazy-init="false" 立退加载, 表示spring启动时,立刻进行实例化。
(lazy-init 设置只对scop属性为singleton的bean起作用)
0 0
- Spring_IOC配置与应用学习笔记
- Spring_IoC学习笔记
- Spring_IOC
- Spring_IOC
- Spring_IOC 之 bean 的配置
- Spring学习笔记(一)----Spring IOC配置与应用
- Spring学习笔记(二)----Spring AOP配置与应用
- spring学习笔记(3)--spring环境配置与应用
- Django学习笔记(四)--admin的配置与应用
- Spring学习第二天:Spring_IOC&DI概述
- spring学习笔记(8)AOP增强(advice)配置与应用
- Spring学习文档_IOC配置与应用
- Spring_Ioc&Factory
- 2、spring_ioc
- 《COM 原理与应用》学习笔记
- COM原理与应用学习笔记一
- 《COM 原理与应用》学习笔记[zz]
- 《COM 原理与应用》学习笔记
- Leveldb windows 编译
- 求两直线的交点
- linux git 显示某次提交的中修改内容
- Spring Boot 开启AOP的方法
- 面向站长和网站管理员的Web缓存加速指南[翻译] 原文(英文)地址: http://www.mnot.net/cache_docs/ 版权声明:署名-非商业性使用-禁止演绎 2.0 这是一篇知识性
- Spring_IOC配置与应用学习笔记
- Redis安装及主从配置
- Foundation-NSDictionary
- 进程间通信之WM_COPYDATA方式反思,回顾和总结 LPWSTR LPSTR
- Msgpack0.6.12 java版简单使用总结
- 如何使用th:each属性迭代模板-原标题:How To Use th:each For Iteration In Thymeleaf Template?
- 自己总结前端web知识学习——太多太多(html/css/js/php)
- MySql错误代码1045的解决方案
- MotionEvent的getX(),getY()与getRawX(),getRawY()区别