初识 Spring

1、Spring框架

  • 是一个轻量级的企业级应用框架
  • 企业应用开发的"一站式"选择,贯穿于表现层、业务层、持久层
  • 优点
    • 低侵入式设计
    • 独立于各种应用服务器
    • 依赖注入特性将组件关系透明化,降低耦合度
    • 面向切面编程特性允许将通用任务进行集中式处理
    • 与第三方框架的良好整合

2、Spring框架 

  • Spring体系结构 

 

  • Spring框架
    • Spring设计理念
    • 是面向Bean的编程
  • Spring两大核心技术
    • 控制反转(IoC:Inversion of Control)/依赖注入(DI:Dependency Injection)
    • 面向切面编程(AOP:Aspect Oriented Programming) 

 

 3、控制反转/依赖注入

public class UserServiceImpl implements UserService {
	// 通过工厂获取所依赖的 UserDao 对象
	private UserDao dao = UserDaoFactory.getInstance();
	…
}
  • 控制反转(IoC)
    • 创建对象的控制权转移,是一种程序设计思想
  • 依赖注入(DI)
    • 将依赖的对象注入到需要的类中去,是"控制反转"设计思想的具体实现方式

 

4、面向切面编程(AOP)

public class UserServiceImpl implements UserService {
	private static final Logger log = Logger.getLogger(UserServiceImpl.class);
	public boolean save(User user){
		log.info(" 添加用户" + user.getUsername());//记录日志
		SqlSession sqlSession = null;
		boolean flag = false;
		try{ //异常处理
            //业务代码
			sqlSession = MyBatisUtil.createSqlSession();
			if(sqlSession.getMapper(userMapper.class).add(user) > 0)
				flag = true;
			sqlSession.commit();//事务控制
			log.info(" 成功添加用户" + user.getUsername());
		} catch (Exception e){
			log.error(" 添加用户" + user.getUsername() + " 失败", e); //记录日志
			sqlSession.rollback(); //事务控制
			flag = false;
		} finally {
			MyBatisUtil.closeSqlSession(sqlSession);
		}
		return flag;
	}
}
  • AOP目标
    • 让我们专注于业务功能处理
  • AOP原理
    • 将复杂的需求分解出不同方面,将不同对象、不同模块之间的共同业务集中解决
    • 通过动态代理的方式,把抽离出来的共性代码"织入"到业务代码中,实现对原有代码的增强处理

 

  •  AOP相关术语
    • Aspect(切面)
    • Advice(增强处理)
    • Pointcut(切入点)
    • Join Point(连接点)
    • Target Object(目标对象)
    • AOP proxy(AOP 代理)
    • Weaving(织入)

总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值