spring框架1

spring

1.两大核心思想:IOC,AOP

2.用途:

1)IOC容器可以将对象之间的依赖关系交由spring管理,进行控制
2)AOP:方便进行面向切面的编程,是oop的扩展,想加什么功能直接加
3)能够集成其他框架,struts hibernate等

3.组成
spring框架组成

4.IOC(Inversion of Control)=DI(Dependency Injection)控制反转和依赖注入,采用反射实现,核心组件是BeanFactory,实际开发常用XmlBeanFactory
5.依赖注入的三种方式
1)set注入

private UserDao userDao;
public void setUserDao(UserDao userDao) {
	this.userDao = userDao;
}
xml:
<property name="要注入的属性名" ref="要依赖的bean 的id值"/>

2)构造注入

public UserService(UserDao userDao) {
	this.userDao = userDao;
}
xml:
<constructor-arg index="0" ref="userDao"/>

3)注解注入

@Autowired(spring提供的)  把它加在需要注入的属性上, 或set方法上,或构造方法上

启用该注解
xml:
<context:annotation-config/>

@Resource (java官方的注解) 用法与@Autowired类似

6.bean在容器上的生命周期
bean在容器上的生命周期

7.使用spring容器

1)创建spring容器

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("abc/spring.xml");

2)使用容器内对象

UserDao dao =(UserDao)context.getBean("userDao");
 // 根据id获取
UserDao dao = context.getBean(UserDao.class);
// 根据类型获取, 找一个类型为UserDao的对象

8.整合mybatis
步骤1:在pom.xml加入依赖
mybatis, mysql, spring-context, logback, druid, junit, spring-jdbc, mybatis-spring

步骤2:把关键对象spring控制反转
连接池对象, sqlSessionFactory, sqlSession

<context:property-placeholder location="classpath:jdbc.properties"/>

<!-- 1) 把数据源对象交给spring容器管理 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
	<property name="driverClassName" value="${jdbc.driver}"/>
	<property name="url" value="${jdbc.url}"/>
	<property name="username" value="${jdbc.username}"/>
	<property name="password" value="${jdbc.password}"/>
	<property name="maxActive" value="${jdbc.max}"/>
	<property name="minIdle" value="${jdbc.min}"/>
</bean>
<!-- 2) sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 注入连接池 -->
	<property name="dataSource" ref="aaa"/>
	<!-- 注入mapper.xml文件的位置-->
	<property name="mapperLocations" value="classpath:com/westos/mapper/*.xml"/>
</bean>
<!-- 3) sqlSession, 用SqlSessionTemplate得到的SqlSession可以不用我们自己操心事务的管理,以及关闭操作 -->
<bean id="sql" class="org.mybatis.spring.SqlSessionTemplate">        
	<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>

步骤3:
使用SqlSession工厂

ClassPathXmlApplicationContext context =
            new ClassPathXmlApplicationContext("abc/spring-mybatis.xml");
SqlSession sqlSession = context.getBean(SqlSession.class);
Map<String, Object> map = new HashMap<String,Object>();
map.put("m", "0");
map.put("n", 5);
List<Product> list = sqlSession.selectList("com.westos.mapper.ProductMapper.selectByPage", map);
for (Product product : list) {
	System.out.println(product);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值