Spring框架

spring框架概述:
概述: 为了解决项目中各层之间的松耦合问题(起到组件之间的粘结作用).
官网: www.spring.io 版本 : 3.x 4.x(建议) 5.x
好处:
1.不依赖于应用服务器.
2.IOC(控制反转)技术实现组件控制. 通过DI(依赖注入)技术提高了组件之间的解耦.
3.通过AOP(面向切面编程)技术实现安全、事务、日志功能的统一管理,提高复用.
4.Spring框架可以几乎与其他任何框架进行良好的整合使用.
5.Spring所有项目之间不相互依赖.
二. 编写第一个Spring项目:
第一个Spring程序: 简单实现第一个IOC控制(对象的生命周期控制). 1.创建项目.导入jar包.
2.IOC : 对象的创建,交由Spring容器完成.
Spring容器创建.applicationContext.xml
3. 创建实体类, 将类实例的创建交给Spring容器.
4.测试Spring容器启动, 并创建得到对象.ApplicationContext context = new ClassPathXmlApplicationContext(“容器”);Object o1 = context .getBean( 名称 );
三. IOC和DI :IOC : 控制反转. 本质: 将手动创建对象的工作,交给Spring容器实现完成.
1.在Spring容器中可以配置创建实例对象.无论带参,无参构造实例都是可以实现的.Spring.xml容器中配置:
2.如何通过注解的用法代替Spring配置文件中的写法.实现IOC控制.
2.1: 首先需要在实体类中: 采用注解.@Component , @Controller , @Service , @Repository
2.2: 基于spring容器配置注解的扫描和支持.<context:component-scan base-package=“父包”>
切记 : 当采用IOC注解的方式进行对象的创建,在没有指定对象名的情况下,默认生成对象名称: 类名称首字母小写作为: 默认的对象名. DI : 依赖注入.含义 : 指的是针对实体类中:
属性成员赋值操作.
1.针对实体中的属性实现注入: 采用容器配置写法实现.
1.1:类中依赖的属性: 必须get/set封装.
1.2:进行注入:
2. 属性的注入: 也可采用注解的写法实现.
//无需提供属性的get/set封装方法实现注入.
@Resource(name=”对象名”) //根据对象名称进行spring容器查找,并注入.
Private BanJi bj1;@Autowired //根据类型进行spring容器查找,找到指定类型对象,直接注入.
Private BanJi bj1;
案例: ioc + di 实现以下功能.
1.采用spring容器完全配置的写法实现分层开发与调用.
2.采用spring容器注解的写法实现分层开发与调用.
四. AOP技术:面向切面概述:切面的原理: 将 业务操作 与 安全,日志,事务 结合使用的过程称为面向切面编程.
静态代理: 是一种编程方法. 对原有功能进行功能增强.
动态代理: 就是将代理类与代理功能进行拆分编写的一种方式.
方式一:根据jdk的动态代理接口实现 : InvocationHandle实现动态代理.Object o1 = Proxy.newProxyInstance();
方式二: spring默认切面使用方式.Cglib插件实现的动态代理. 切面的一些概念:
目标类: 用户需要调用的业务功能类.
类中:有目标方法.
切面: 代理类.
通知: 代理类中额外功能.分类: 前置,后置,环绕,返回值,异常处理等. 切入点: 代理类明确 代理谁的 规则.
织入: 将代理功能 + 目标功能 组织到一起.
第一个AOP 程序的实现:
2.1:实现方式一,基于applicationContext.xml核心配置实现.
案例: 实现service 新增用户实现事务的控制.
步骤:
1.面向切面的AOP技术,需要额外的补充jar.
aspectjrt.jar / aspectjweaver.jar
cglib-nodep-2.1_3.jar/aopalliance.jar
2.编写目标类与目标方法.
3.编写切面 , 和切面中的通知.
4.在spring容器中,将目标与切面进行织入.注:织入时,指定切入点. 5.测试访问目标类中的目标方法.是否进行增强成功. 2.2:实现方式二,基于注解实现.aop动态代理.
五. Spring框架与hibernate 框架的整合:
1.Spring框架与jdbc实现整合:
1.1: 引用spring的jar + 驱动包 + dbcp数据源,pool.jar.
1.2: 数据源对象的创建: 交给spring容器完成.
<bean id="dataSource"class=“org.apache.commons.dbcp.BasicDataSource”>
//配置四个连接属性…

1.3: 如何编写dao层(核心: 需要根据dataSource进行增删改查). private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource){ this.jdbcTemplate = new JdbcTemplate( dataSource); } 增删改查:
this.jdbcTemplate.update() /queryForObject() / query()…
1.4:编写测试类:测试使用.3.Spring与Hibernate框架整合使用:
3.0: 集成spring与hibernate,将所有jar包进行引入.
spring+ hibernate +(spring-hibernate)+ dbcp.jar,pool.jar,驱动.jar
3.1: 如何控制数据库的连接.dataSource —> sessionFactory.
3.2: 如何让dao层操作数据库.
方式一:dao层继承父类 : HibernateDaoSupport.
方式二:在spring容器中对dao层进行sessionFactory工厂属性的注入.
3.2: 如何给service层增加事务控制.
在spring容器中通过事务管理器,创建事务通知. 通过面向切面编程进行动态代理使用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值