SpringIOC 容器
spring是可以解决对象创建以及对象之间依赖关系的一种框架。
通过添加模块,添加不同功能
- Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
- Spring Web Spring对web模块的支持。(struts,spring mvc)
- Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
- Spring ORM spring对orm的支持(hibernate)
- Spring AOP 切面编程
- SpringEE spring 对javaEE其他模块的支持
xml 添加bean并赋值
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- ###############对象属性赋值############### -->
<!--
给对象属性注入值:
# p 名称空间给对象的属性注入值
(spring3.0以上版本才支持)
-->
<bean id="userDao" class="cn.itmayiedu.UserDao"></bean>
<bean id="userService" class="cn.itmayiedu.UserService" p:userDao-ref="userDao"></bean>
<bean id="userAction" class="cn.itmayiedu.UserAction" p:userService-ref="userService"></bean>
<!-- 传统的注入:
<bean id="user" class="cn.itmayiedu.User" >
<property name="name" value="xxx"></property>
</bean>
-->
<!-- p名称空间优化后 -->
<bean id="user" class="cn.itmayiedu.User" p:name="Jack0001"></bean>
</beans>
注解版本:
@Component 指定把一个对象加入IOC容器
@Repository 作用同@Component; 在持久层使用
@Service 作用同@Component; 在业务逻辑层使用
@Controller 作用同@Component; 在控制层使用
@Resource @Autowired 属性注入(定义bean之间的依赖关系)
1、允许baseDao注入为null(required = false),找到名为bossDao注入过来
@Autowired(required=false) @Qualifier("bossDao")
private BaseDao baseDao;
2、找到名为beeDao注入过来
@Resource(name="beeDao")
private BaseDao baseDao;
3、注入一个名为user的bean。当scope设置为prototype的时为非单例
spring ioc默认是单例模式
@Component(value="user")
//@Scope(value="prototype") //创建多实例
public class User {
}
还没有评论,来说两句吧...