spring

Spring框架 解决企业开发复杂性
https://www.bilibili.com/video/BV1Vf4y127N5?from=search&seid=6237342153625411486&spm_id_from=333.337.0.0

ioc 容器: 控制反转,不需要new对象,把创建对象过程交给Spring进行管理
aop:面向切面,动态代理,不修改源代码记性功能增强

Spring的特点:
1.方便解耦,简化开发
jdbctemplate
事务管理
spring5的新特性

https://spring.io/projects/spring-framework#learn
https://github.com/spring-projects/spring-framework
Access to Binaries
For access to artifacts or a distribution zip, see the Spring Framework Artifacts wiki page.
https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Artifacts
https://repo.spring.io/ui/
在这里插入图片描述

https://repo.spring.io/release/org/springframework/spring/
https://repo.spring.io/ui/native/release/org/springframework/spring/5.2.18.RELEASE
https://repo.spring.io/ui/native/release/org/springframework/spring/5.2.18.RELEASE/spring-5.2.18.RELEASE-dist.zip

idea
https://www.jetbrains.com/idea/download/#section=mac

p3 idea

file-new-project
create project from temple

spring5_demo1
~/IdeaProjects/spring5_demo1
在这里插入图片描述
使用spring框架需要导入spring5 jar包
三个jar包 文档 源代码
aop beans context

core container 核心部分
beans core context expression
test 测试

beans core 为ioc的核心部分
context 上下文
expression 表达式
四个包完还需要日志包
commons-logging
https://commons.apache.org/proper/commons-logging/download_logging.cgi
https://dlcdn.apache.org//commons/logging/binaries/commons-logging-1.2-bin.zip

创建文件夹lib
拷贝5个jar包
file-》project Structure-》modules-》dependencies -》+jar包

src->new package ->new class

创建xml 如果new 没有xml选项
https://blog.csdn.net/li1325169021/article/details/93158207 创建模板

ioc 控制反转,把对象和对象之间的调用过程,交给Spring进行管理
使用ioc的目的,为了降低耦合度

p6

ioc底层原理
xml解析、工厂模式、反射
a的方法调用b的方法,通过工厂c调用
耦合度太高 -》解决方法 工厂模式 -》只解耦了a和b,不可能完全解耦

通过xml 和反射 降低到最小
反射:通过得到类的字节码文件
.java -> .class 反射就是得到class文件

ioc解耦的过程
xml创建哪些文件

配置你要创建的对象
有service类和 dao类,创建工厂类

class UserFactory{
	public static UserDao getDao(){
		String classValue = class属性值;//xml解析
		//通过反射创建对象 得到字节码文件
		Class clazz = Class.ForName(classValue);  //通过反射创建对象
		return (UserDao)clazz.newInstance();
	}
}

怎么降低的呢?
进一步降低耦合度
只需要修改配置文件即可,其他地方不需要修改

IOC(接口)
1、IOC的思想基于IOC的容器完成,IOC容器底层就是对象工厂
2、Spring提供IOC容器实现两种方式:
1)BeanFactory 基本的内部使用不提供开发人员使用 只加载
2)ApplicationContext 接口的子类,功能更强大 加载就创建对象
这种更好,因为耗时更好资源的先项目启动的时候就做了

	public class TestSpring5{
		public void testAdd(){
			//加载
			ApplictionContext context = 
				new ClassPathXmlApplicationContext(configLocation:"bean1.xml");
			//使用
			User user=context.getBean(s:"user",User.class);
				System.out.pringln(user);
				user.add();
		}
	}
p7

spring bean 管理
1、spring创建对象
2、spring注入属性

	public class User{
		private String userName;
		public void add(){
			this.userName = userName;
	
		}
	}

bean 管理
1、xml配置文件方式 使用bean标签
2、注解方式

xm配置文件:
1)id 对象标识别名
2)class 类路径
3) name 可以加符号类似于id早期框架使用
默认无参数构建方法
注入属性
DI:依赖注入
di在ioc中有什么作用,di是ioc中的一种具体实现,表示依赖注入
但是注入属性创建对象的基础之上来完成

public class Book{
	private String bname;
	// set方法注入
	public void setBname(String bname){
		this.bname = bname;
	}
	// 有参数构造注入
	public Book(String bname){
		this.bname = bname;
	}
	public static void main(String[] args){
		Book book = new Book();
		book.setBname("abc");
		
		Book book = new Book(bname:"abc");
	}
}

bean注入

<bean id="book" class="com.atguigu.spring5.Book">
	<property name="bname" value="abc"></property>
</bean>
p8 有参构造注入属性
<bean id="book" class="com.atguigu.spring5.Book">
	<constructor-arg name="bname" value="abc"></constructor-arg>
</bean>
p9 set方式简化
p25 aop面向切片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值