spring框架学习笔记

第一天

一、spring入门

1.1IOC

①IOC:inversion of control(控制反转)
控制反转:将对象的创建交给spring管理

1.2创建接口和类

接口

public interface UserDao {
	public void save();
}

实现类:

public class UserDaoImpl implements UserDao {

	private String name;

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public void save() {
		// TODO Auto-generated method stub
		System.out.println("UserDaoImpl执行了。。。。。" + name);
	}

}

1.3将实现类交给spring管理

<!-- ==================Spring的入门配置================ -->
	<bean name="userDao" class="com.itheima.spring.demo1.UserDaoImpl">
		<property name="name" value="李东"/>
	</bean>
	

1.4测试类

	public void demo2(){
		//创建Spring的工厂
		ApplicationContext applicationcontext = new ClassPathXmlApplicationContext("applicationcontext.xml");
		UserDao userDao = (UserDao) applicationcontext.getBean("userDao");
		userDao.save();
		
	}

1.5DI

DI:依赖注入,前提必须要有ioc,spring管理这个类的时候将类的依赖属性注入进来

1.6spring的工厂类

①老版本的工厂类:BeanFactory(调用getBean的时候才会生成类的实例)
②新版本的工厂类:ApplicationContext(加载配置文件的时候,就会将spring管理的类都实例化)
新版本的工厂类有两个实现类
ClassPathXmlApplicationContext(加载类路径下的配置文件)
FileSystemXmlApplicationContext(加载文件系统下的配置文件)、

1.7配置文件的一些细节

①Bean标签的id和name的配置
id:使用了约束中的唯一约束。不能出现特殊字符
name:没有唯一约束(理论上可以重复出现,实际开发不能出现),可以出现特殊字符
②bean作用范围的配置
scope:配置bean的作用范围
singleton:默认的,spring会采用单例模式创建这个对象
prototype:多例模式(spring与Struts2整合的时候会用到)
request:应用到web项目中,spring创建这个类之后,将这个类存入到request范围中
session:应用到web项目中,spring创建这个类之后,将这个类存入到sessiont范围中
globalsession :应用在web项目中,必须在porlet环境下使用。但是如果没有这种环境,相对于session。

二、属性注入

2.1构造方法的注入

在这里插入图片描述

2.2set方法的方式

在这里插入图片描述
在这里插入图片描述

2.3P名称空间的属性注入

在这里插入图片描述

2.3spel的方式

在这里插入图片描述

2.4集合属性的注入

<!-- Spring的集合属性的注入============================ -->
	<!-- 注入数组类型 -->
	<bean id="collectionBean" class="com.itheima.spring.demo5.CollectionBean">
		<!-- 数组类型 -->
		<property name="arrs">
			<list>
				<value>王东</value>
				<value>赵洪</value>
				<value>李冠希</value>
			</list>
		</property>
		
		<!-- 注入list集合 -->
		<property name="list">
			<list>
				<value>李兵</value>
				<value>赵如何</value>
				<value>邓凤</value>
			</list>
		</property>
		
		<!-- 注入set集合 -->
		<property name="set">
			<set>
				<value>aaa</value>
				<value>bbb</value>
				<value>ccc</value>
			</set>
		</property>
		
		<!-- 注入Map集合 -->
		<property name="map">
			<map>
				<entry key="aaa" value="111"/>
				<entry key="bbb" value="222"/>
				<entry key="ccc" value="333"/>
			</map>
		</property>
	</bean>

三、分模块开发

3.1加载配置文件的时候加载多个

在这里插入图片描述

3.2在一个配置文件中引入多个配置文件

在这里插入图片描述

第二天

 Spring的IOC的注解开发
 注解的入门
 引入aop的包
 引入context约束
 <context:component-scan />
 使用注解开发
 @Component :定义Bean
 @Controller :WEB层
 @Service :Service层
 @Repository :DAO层
 属性注入:
 普通属性 :@Value
 对象属性 :@Resource
 @Autowired :按类型注入属性,按名称@Qulifier
 XML方式和注解方式比较
 XML方式 :适用性更广,结构更加清晰。
 注解方式 :适用类是自己定义,开发更方便。
 XML和注解的整合开发
 XML定义类
 注解属性注入
 Spring的AOP的基于AspectJ的XML的开发
 AOP的概述
 AOP:面向切面编程,是OOP的扩展和延伸,是用来解决OOP遇到问题。
 Spring的AOP
 底层的实现
 JDK的动态代理
 Cglib的动态代理
 AOP的相关术语
 连接点:可以被拦截的点。
 切入点:真正被拦截的点。
 通知:增强方法
 引介:类的增强
 目标:被增强的对象
 织入:将增强应用到目标的过程。
 代理:织入增强后产生的对象
 切面:切入点和通知的组合
 AOP的入门开发
 引入jar包
 编写目标类并配置
 编写切面类并配置
 进行aop的配置
aop:config
<aop:pointcut expression=”execution(表达式)” id=”pc1”/>
<aop:aspect >
<aop:before method=”” pointcut-ref=”pc1”/>
</aop:aspect>
</aop:config>
 通知类型
 前置通知
 后置通知
 环绕通知
 异常抛出通知
 最终通知
 切入点表达式写法

一、 AOP入门

1.1编写目标类并完成配置

public class ProductDaoImpl implements ProductDao {

	@Override
	public void save() {
		System.out.println("保存商品");
	}

	@Override
	public void update() {
		System.out.println("更新商品");
	}

	@Override
	public void find() {
		System.out.println("查询商品");

	}

	@Override
	public void delete() {
		System.out.println("删除商品");
	}

}

在这里插入图片描述

1.2切面类与配置

public class MyAspectXML {
	public void checkPri(){
		System.out.println("权限校验");
	}
}
		 <!-- 通过AOP的配置完成对目标类产生代理 -->
		 <aop:config>
		 	<aop:pointcut expression="execution(* com.itheima.spring.demo3.ProductDaoImpl.save(..))" id="pointcut1"/>
		 	
		 	<!-- 配置切面 -->
		 	<aop:aspect ref="myAspect">
		 		<aop:before method="checkPri" pointcut-ref="pointcut1"/>
		 	</aop:aspect>
		 </aop:config>

第三天

一、spring的AOP基于aspectJ的注解开发

1.1编写目标类并配置

在这里插入图片描述

1.2编写切面类并配置

在这里插入图片描述

1.3使用注解的AOP对象目标类进行增强

在这里插入图片描述

1.4测试类

在这里插入图片描述

1.5注解AOP开发的类型

@Before	:前置通知
@AfterReturning	:后置通知
@Around		:环绕通知
@AfterThrowing		:异常抛出通知

二、springJDBC模板的使用

2.1使用原始案例

在这里插入图片描述

2.2spring的配置文件

在这里插入图片描述

2.3简化版

在这里插入图片描述

2.4配置文件中引入属性文件

在这里插入图片描述

第四天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值