Spring框架的优点

1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

2.可以提供众多服务,事务管理,WS等。

3.AOP的很好支持,方便面向切面编程。

4.对主流的框架提供了很好的集成支持,如hibernate,Struts2,JPA等

5.Spring DI机制降低了业务对象替换的复杂性。

6.Spring属于低侵入,代码污染极低。

7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

Aop的专业术语

方面(Aspect):指的是封装了共通处理的功能组件。该组件可以作用到某一批目标组件的方法上。

连接点(JoinPoint):指的是方面组件和具体的哪一个目标组件的方法有关系。

切入点(Pointcut):用于指定目标组件的表达式。指的是方面组件和哪一批目标组件方法有关系

通知(Advice):用于指定方面组件和目标组件方法之间的作用时机。例如:先执行方面组件再执行目标方法;或先执行目标方法再执行方面组件。

目标(Target):利用切入点指定的组件和方法。

动态代理(AutoProxy):Spring同样采用了动态代理技术实现了AOP机制。当使用AOP之后,从容器getBean()获取的目标组件,返回的是一个动态生成的代理类。然后通过代理类执行业务方法,代理类负责调用方面组件功能和原目标组件功能。

使用属性文件配置数据源

<!--引入properties文件 -->
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:database.properties</value>
</property>
</bean>
<!--配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</bean>

注意:!!!在${.....}中注意看别输入的空格或者别的特殊符号!要不然解读不出来

最新文章

  1. 支持断线重连、永久watcher、递归操作并且能跨平台(.NET Core)的ZooKeeper异步客户端
  2. Python 之 for循环中的lambda
  3. shell 记录
  4. Android反编译(一)之反编译JAVA源码
  5. [USACO2003][poj2138]Travel Games(dp/最长路)
  6. 各种数据库连接代码(java)
  7. 听说noip2015有幻方
  8. Google Map API学习1
  9. GoF——组合模式
  10. easyUI的combobox实现级联
  11. 从零开始学C++之对象的使用(二):四种对象生存期和作用域、static 用法总结
  12. HDU 1880 字符串hash 入门题
  13. JSP页面中的pageEncoding和contentType的区别
  14. LeetCode 456. 132 Pattern
  15. 【Spring源码分析】Bean加载流程概览
  16. 类型和原生函数及类型转换(二:终结js类型判断)
  17. dd、split、csplit命令
  18. leetcode - [4]Sort List
  19. DELPHI获取宽带IP
  20. 20155216 2016-2017-2 《Java程序设计》第八周学习总结

热门文章

  1. 2022弱口令实验室招新赛CTF赛道WriteUp
  2. python之路39 前端开始 各种标签
  3. 防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18
  4. [超详细] [效能工具]Typora+PicGo+Github免费图床快速搭建,提升技术文档输出效率
  5. [数据结构]普里姆(Prim)算法生成最小生成树
  6. [C++]union联合体总结
  7. MySQL 更新数据 不同条件(批量)更新不同值
  8. 通俗易懂angular搭建
  9. 12月12日内容总结——Django之数据增删改查、Django请求生命周期流程图、Django路由层(路由匹配、转换器、正则匹配)、反向解析
  10. JSONPath 处理特殊字符