Spring框架(三)组件扫描.组件装配.Spring DAO 中的核心类.JdbcTemplate 的API

Spring框架(三)

目录:
1.什么是组件扫描
2.如何完成组件扫描*****
3.和组件扫描相关的其它标注***
4.组件装配相关的标注******
5.Spring DAO 做了哪些改进
6.Spring DAO 中的核心类 JdbcTemplate
7. 采用继承JdbcDaoSupport 来完成 JdbcTemplate 的使用
8. 采用不继承JdbcDaoSupport 来完成 JdbcTemplate 的使用
9.JdbcTemplate 的API

1.什么是组件扫描

Component Scan 组件扫描技术
是Spring 提供的一套基于注解(标注)
用来解决组件的创建 组装 维护组件关系的技术 这个技术可以大大的简化 XML的编写。

2.如何完成组件扫描 10000000

2.1 建立一个项目
    导入jar包(ioc aop)
    拷贝配置文件到 src
2.2 自定义一个java 类
2.3 在配置文件中开启组件扫描
    <context:component-scan base-package="包名" />
2.4 在java类上 打对应的标注
    @Component 通用层标注
    @Repository 持久层标注
    @Service 业务层标注
    @Controller 控制层标注
2.5 创建Spring 容器 从容器中获取组件进行测试

3.和组件扫描相关的其它标注 7

控制作用域的标注
    @Scope("singleton")
    可以通过 prototype 调整成非单例
控制初始化的标注
    @PostConstruct
    加在初始化方法上
    完成对象初始化
控制销毁的标注
    @PreDestroy
    加在销毁方法上

4.组件装配相关的标注 10000000000000000000000000000000000000000

4.1 @Value
    用在 成员变量 set方法上
    如果是赋值简单值 直接@Value("值")
    如果是复杂值 则使用 @Value("#{对象id}")
4.2 @Autowired
    用在 成员变量 set方法 还有构造方法上
    它是解决复杂值注入问题的
    它优先使用类型进行匹配
    如果类型有冲突 则启用名字进行匹配。
    @Qualifier("cc") 可以结合 @Qualifier 来指定名字查找 找不到会报错 不再启用类型
    @Autowired 对组件的依赖 默认属于强依赖 可以通过 required = false 指定弱依赖
    @Qualifier 不能用在构造方法上
4.3 @Resource
    用在 成员变量 set方法
    它是解决复杂值注入问题的
    它优先使用名字进行匹配 如果匹配不上 会启用类型
    它是JDK 中的标注 但是可以完美的和Spring 结合
    它可以指定名字查找 需要使用name 属性来指定 不能解决强依赖

5.Spring DAO 做了哪些改进

简化了DAO 实现类的编写
对jdbc代码做了高级的封装
提供了基于AOP的事务管理
对jdbc 中的检查异常 做了封装
封装成了 DataAccessException
这个异常继承自RuntimeException

6.Spring DAO 中的核心类 JdbcTemplate

这个类可以完成
驱动加载
连接获取
sql执行环境获取
资源释放
JdbcDaoSupport这个类可以提供 JdbcTemplate
  1. 采用继承JdbcDaoSupport 来完成 JdbcTemplate 的使用

    7.1 建立一个项目
    导入jar包(ioc aop dao 连接池 数据库驱动)
    并拷贝配置文件到src下
    7.2 编写一个DAO 接口
    编写一个查询表中数据条数的方法
    7.3 编写一个DAO 的实现类
    继承 JdbcDaoSupport
    并实现DAO接口
    开启组件扫描
    在实现类上加标注 @Repository
    给 DAO实现类的父类 JdbcDaoSupport 设置一个dataSource
    使用JdbcDaoSupport 中的模板 完成查询
    7.4 构建Spring 容器
    从容器中获取dao 实现类 测试

  2. 采用不继承JdbcDaoSupport 来完成 JdbcTemplate 的使用

    8.1 建立一个项目
    导入jar包(ioc aop dao 连接池 数据库驱动)
    并拷贝配置文件到src下
    8.2 编写一个DAO 接口
    编写一个查询表中数据条数的方法
    8.3 编写一个DAO 的实现类
    实现DAO接口
    自定义一个模板 JdbcTemplate
    从容器中加载这个类型对应的对象
    容器中定义一个 JdbcTemplate
    这个对象依赖于dataSource
    开启组件扫描
    在实现类上加标注 @Repository
    使用自己的模板 完成查询

    8.4 构建Spring 容器
    从容器中获取dao 实现类 测试

    9.JdbcTemplate 的API
    queryForInt 查询一个整数
    queryForObject 查询一个对象 整数 字符串
    上面的两个 只能查询一个数据 查询的列数也只能是1

    如何完成多列的查询
    比如根据id 查询一个用户对象
    需要用到 RowMapper
    queryForObject + RowMapper
    查询所有 也可以使用上面的 RowMapper
    query + RowMapper

    如何完成增删改
    update

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是 spring? 2. 使用 Spring 框架的好处是什么? 3. Spring 由哪些模块组成? 4. 核心容器(应用上下文) 模块 5. BeanFactory – BeanFactory 实现举例 6. XMLBeanFactory 7. 解释 AOP 模块 8. 解释 JDBC 抽象和 DAO 模块 9. 解释对象/关系映射集成模块 10. 解释 WEB 模块 12. Spring 配置文件 13. 什么是 Spring IOC 容器? 14. IOC 的优点是什么? 15. ApplicationContext 通常的实现是什么? 16. Bean 工厂和 Application contexts 有什么区别? 17. 一个 Spring 的应用看起来象什么? 18. 什么是 Spring 的依赖注入? 19. 有哪些不同型的 IOC(依赖注入)方式? 20. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入? 21.什么是 Spring beans? 22. 一个 Spring Bean 定义 包含什么? 23. 如何给 Spring 容器提供配置元数据? 24. 你怎样定义的作用域? 25. 解释 Spring 支持的几种 bean 的作用域 26. Spring 框架的单例 bean 是线程安全的吗? 27. 解释 Spring 框架 bean 的生命周期 28. 哪些是重要的 bean 生命周期方法? 你能重载它们吗? 29. 什么是 Spring 的内部 bean? 30. 在 Spring 如何注入一个 java 集合? 31. 什么是 bean 装配? 32. 什么是 bean 的自动装配? 33. 解释不同方式的自动装配 34.自动装配有哪些局限性? 35. 你可以在 Spring 注入一个 null 和一个空字符串吗? 36. 什么是基于 JavaSpring 注解配置? 给一些注解的例子 37. 什么是基于注解的容器配置? 38. 怎样开启注解装配? 39. @Required 注解 40. @Autowired 注解 41. @Qualifier 注解 42.在 Spring 框架如何更有效地使用 JDBC? 43. JdbcTemplate 44. SpringDAO 的支持 45. 使用 Spring 通过什么方式访问 Hibernate? 46. Spring 支持的 ORM 47.如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起来? 48. Spring 支持的事务管理型 49. Spring 框架的事务管理有哪些优点? 50. 你更倾向用那种事务管理型? 51. 解释 AOP 52. Aspect 切面 53. 在 Spring AOP ,关注点和横切关注的区别是什么? 54. 连接点 55. 通知 56. 切点 57. 什么是引入? 58. 什么是目标对象? 59. 什么是代理? 60. 有几种不同型的自动代理? 61. 什么是织入。什么是织入应用的不同点? 62. 解释基于 XML Schema 方式的切面实现 63. 解释基于注解的切面实现 64. 什么是 Spring 的 MVC 框架? 65. DispatcherServlet 66. WebApplicationContext 67. 什么是 Spring MVC 框架的控制器? 68. @Controller 注解 69. @RequestMapping 注解

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值