spring学习笔记20240411

sping是什么?
为了解决传统的J2EE开发效率低,二创建的一个java开源框架,2003年兴起,由rod johson创建。spring作为开源的中间件,提供J2EE应用各层的解决方案,Sping贯穿表现层,业务层,持久层,而非专注某一层,spring是企业应用开发的一站式选择,spring不想取代已有框架,而是与他们无缝整合

spring是一个轻量级的控制反转(Ioc)和面向切面(AOP)的容器。
IOC ( inversion of control )反转控制,将我们自己创建的工作交给sping容器完成
DI(Dependency Injection)依赖注入:将值通过配置的方式为变量初始化。
注入方式:set方法注入,构造注入,属性注入
注入类型:值类型(8中基本数据类型),引用类型(string 自定义对象)

为什么使用Spring?
1、方便解耦,简化开发。通过ioc容器,可以将对象的依赖关系交给spring控制,避免硬编码导致的过度程序耦合,用户无需为了单实例模式类,属性文件解析等底层需求编写代码,专注上层应用
2、aop变更支持。方便进行面向切面的变成。
3、声明式事务的支持
4、方便程序的测试
5、方便继承各种优秀框架(struts,hibernate,mybatis,hessian,quartz),提供了优秀框架的直接支持
6、降低了java ee api的使用难度

applicationContext.xml


sping的作用
// 在之前的项目中 new对象是我们自己做的
例如:
User u=new User();
u.setU_id(2);
//ioc的反转:创建对象这份工作由我们自己执行,反转给spring帮我们执行
//ioc的控制:就是由spring帮我们负责创建销毁对象,掌控对象的生命周期等,我们需要使用对象的时候,和spring申请即可。
//ioc是一种编程思想,也是一种新的设计模式,他需要di的支持(依赖注入)
// spring是一个容器,可以帮我们管理对象
根据spring配置文件获取容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext(“applicationContext”);

//User u=(User)ac.getBean(“user”);
//通过getBean获取配置好的user对象(程序员向spring容器要对象)
User u=ac.getBean(User.class);

xml配置和注解配置

name 是一个名字,我们可以根据这个名字来获取对象
name可以使用特殊字符
name 可以重复
我们在实际开发中不推荐把多个对象的名字设置成一样

id和name作用相同,不支持特殊字符,不支持重复

class 被管理对象的全包名,sping会通过报名来创建对象
空参构造,
public User(){默认是空参的,如果没有空参构造方法,会报错}
静态工厂,动态工厂(不常用)

根据spring配置文件构造容器对象
applicationContext配置的所有bean都会在容器创建的时候创建出来
如果bean较多,会产生内容过大的问题,在机器硬件性能较为落后的时候体现的比较明显
延迟加载(lazy init) true 就是创建容器的时候不加载bean,在获取的时候才创建(default true false)

你可能感兴趣的:(spring,学习,java)