Spring学习笔记(一)
2015-10-24 21:40
288 查看
Spring学习笔记(一)
Spring核心思想:IOC: Inversion Of Control (控制反转) / DI: Dependency Injection (依赖注入)
AOP: Aspect Oriented Programming (面向切面编程)
IOC
1. 简单的应用
Modelpackage com.wangj.spring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.wangj.spring.model.User; import com.wangj.spring.service.UserService; public class SpringDemo { public static void main(String[] args) { ApplicationContext applicationContext = new FileSystemXmlApplicationContext("config/applicationContext.xml"); UserService service = (UserService) applicationContext.getBean("userService"); User user = new User(); user.setUsername("wangj"); user.setPassword("wangj1130"); service.add(user); } }
View Code
2. 具体用法(XML配置)
bean注入方法1. set方法注入 <bean id="userService" class="com.wangj.spring.service.UserService"> <property name="userDao" ref="userDao"></property> </bean> 2. 构造方法注入 <bean id="userService" class="com.wangj.spring.service.UserService"> <constructor-arg> <ref bean="userDao"/> <!-- <bean class="com.wangj.test.spring.dao.impl.UserDaoImpl"/> --> <!-- 重新new对象 --> </constructor-arg> </bean> 当构造方法里含有多个参数时: 1)根据类型 <bean id="exampleBean" class="examples.ExampleBean"> <constructor-arg type="int" value="7500000"/> <constructor-arg type="java.lang.String" value="42"/> </bean> 2)根据顺序 <bean id="exampleBean" class="examples.ExampleBean"> <constructor-arg index="0" value="7500000"/> <constructor-arg index="1" value="42"/> </bean>
bean scope属性:
scope="singleton" //(默认)每次使用同一个对象
="prototype" //每次都new一个新的(Struts Action)
=request、session、global session(不重要)
集合注入
<bean name="userDAO" class="com.wangj.dao.impl.UserDAOImpl"> <property name="sets"> <set> <value>1</value> <value>2</value> </set> </property> <property name="lists"> <list> <value>1</value> <value>2</value> <value>3</value> </list> </property> <property name="maps"> <map> <entry key="1" value="1"></entry> <entry key="2" value="2"></entry> <entry key="3" value="3"></entry> <entry key="4" value="4"></entry> </map> </property> </bean>
autowire 自动装配
autowire="byName" // 根据名称自动装配,该名称为setXxx()方法中xxx(set后的字符串首字母小写),与变量名无关
="byType" // 根据类型自动装配
="default" // 跟<beans 节点中 default-autowire属性一致,如果<beans节点中未配置default-autowire属性,则报异常
bean生命周期
lazy-init="true" // 什么时用到什么时候初始化(sping初始化默认将所有bean加载到内存)
init-method="init" // 容器初始化时调用
destroy-method="destroy" // 容器销毁时调用
(init-method、destroy-method 一般不和prototype一起用)
相关文章推荐
- java 命令模式详解,敢不敢稍微不同一点
- JAVA中IO流部分复制文件常用的四中方法
- 图学java基础篇之集合
- Android 设置Settings源码导入eclipse
- java 策略设计模式 装饰器模式
- Elasticsearch in java 范例:自动补齐功能(completion suggester)
- Java实现从正方教务系统抓取数据(一)--模拟登录
- Eclipse中在web项目中添加hibernate
- JAVA HashSet 原理分析
- 使用 Jni 调用 Dll 的实现JAVA在cmd控制台刷屏
- 浅析java异常处理机制—高级篇
- 1.入门和eclipse
- 【Java】Java中的面向对象
- Java基础学习6(位运算符,交换两个数的三种方法)
- java线程池的注意事项
- Android开发入门(1)Java Jdk的安装及配置
- Java多线程共享全局变量问题
- Java中关于变量初始化与数组初始化的比较
- Java 信号 Semaphore 简介
- Java一步一脚印—HashSet