宁波实习day3

宁波实习第三天

复习昨天的jdbc连接数据库的七个步骤

  1. 获取驱动
  2. 创建连接
  3. 编写sql
  4. 获取preparestatement
  5. 执行sql结果,返回结果集
  6. 处理结果集
  7. 关闭资源

搭建SSM遇到的问题

昨天搭了一下午的SMM框架,虽然根据CSDN上的教程,但是中间还会出现很多其他的问题,在我用maven创建Javaweb项目的第一步,因为没有在本地仓库.m2导入setting.xml文件,导致本地仓库没有阿里云的镜像仓库,从而创建项目在加载一些jar包时速度非常的慢,并且在这中间要设置archtypeCatalog属性为internal(这是用来连接国内的jar包资源,不然速度还是很慢),这之后就解决了第一步创建项目的工作。

MVC

M: Modeal
V: view
C: Controller.
Bean – 实体类
Dao – 接口 – 都是抽象的
Service – 业务逻辑层
Controller(servlet) – 控制器层 – 处理页面请求/发送过来的参数

SSM搭建的步骤

跟着老师,手把手的教我们进行SSM的搭建,以下是简单的文字步骤,中间遇到的问题嘛(哈哈)

  1. 数据库
  2. 创建maven 项目 - 创建maven骨架
  3. 导包 – ssm – Pom.xml
  4. 创建目录结构 – 基于mvc的分层开发
    Bean – dao – service - controller
  5. 根据数据库去编写bean
  6. 去编写 dao (dao;impl)
  7. 因为Mybatis 代替了daoImpl,所以要去配置 Spring+Mybatis 配置文件 – ApplicationContext.xml
    a) Spring – 【→bean - dao(impl) - service(impl) - controller - 页面← 】
  8. 编写mapper.xml
  9. 编写 service (service+ impl)
  10. 配置 Spring - MVC.xml 和 web.xml
  11. 导入 页面
  12. 写Controller

Spring笔记

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">
					//配置四个连接属性...
				</bean>
		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容器中通过事务管理器,创建事务通知. 通过面向切面编程进行动态代理使用.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值