Spring简单入门 - ioc
大二下学期了,发现身边的同学,工作室的下伙伴最近都准备考研,迷茫中不晓得怎么选择,学长考研复试中说这个优快云写博客的阅读量是个加分点。之前学长一直叫我们写博客,记录自己的学习路程,发现还是很有用的。要接手工作室中写的高校云考勤这个项目,来参加学校里的软创比赛。高校云考勤微信公众号(用于大学、高中、初中、以及公司的考勤的APP),有做考勤这方面的大佬可以到GitHub上下载,指出不足,觉得好的也可以点上小星星。传送门:(https://github.com/TuGengs/cloudmanager)。目前项目可以支持自己学校的早检,本人和团队的小伙伴们正在开发宿舍检查,和后台数据分析。这个项目使用ssm框架,小弟对于ssm框架目前只学习了持久层的mybatis(PS:这个当时忘记记录,之后补齐),目前开始学习Spring框架,学习完ssm,在比赛完之后,我也会把项目上传至GitHub上,喜欢的朋友们记得帮忙点点小星星,投点小花花。本人写的有问题的地方,各位看到的大牛多多指正,谢谢大家。
1.Spring是什么呢?
- spring是一个开源的、轻量级的框架,使用spring框架可以简化企业级开发。
- spring是一个一站式框架,spring在JavaEE三层架构中,每一层都提供了不同的解决技术
- web:SpringMVC
- service:Spring的ioc
- dao:Spring的jdbctemplate
2.Spring的特点
> - 轻量-----spring是一款轻量级的的框架,相比于EJB,spring无需依赖于其他的框架。
> - 面向切面编程 AOP
> - 控制反转 IOC
> - 依赖注入
> - 容器
> - 框架
3.什么是IOC?
> - ioc的英文全称为(Inverse of Control )中文:控制反转
控制反转:是对组件对象控制的转移,从程序代码的本身转移到外部的容器
> - 为什么要使用ioc?
比如有一个类,在这个类中有方法但不是静态的,在另一个类中想调用这个方法,一般我们的解决的方案是使用new创建该类的对象。但是这种方法会使得两个类的耦合太高,在程序上一般要做到“高内聚,低耦合”。所以使用到ioc
4.ioc的底层原理。
> - ioc底层原理使用技术
(1)XML配置文件
(2)dom4j解析XML
(3)工厂设计模式
(4)反射
> - 第一步:配置XML文件,配置要创建的对象类
<`bean id="user"` class="cn.banyue.User">
id是User类的别名,这个是可以随你自己取名的
class是该类所在的包下对应的路径
> - 第二步:创建工厂类,使用dom4j的解析配置文件 + 反射机制
public static User getUser() {
//1.使用dom4j解析xml配置文件
//根据解析到的id得到对应的class的属性值
String classValue = "class的属性值";
//2.使用反射创建类对象
Class clazz = Class.forName(classValue);
User user = clazz.newInstance();
return user;
//这样降低了类之间的耦合性
}
5.ioc的简单入门案例
> - 第一步:导入jar包,没有spring的jar包朋友们可以到spring官网下载(https://repo.spring.io/release/org/springframework/spring/)
导入核心的四个jar即可。(Beans、Cores、Context、Spel)
> - 第二步:创建User类,使用dom4j的解析配置文件 + 反射机制
> - 第三步:创建spring的xml配置文件,配置创建的类
1、spring的核心配置文件名称和位置不是固定不变的,建议放到src下面,官方建议名称:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- ioc入门 -->
<bean id="user" class="com.banyue.ioc.User"></bean>
</beans>
- 第四步:创建测试类,测试是否能获取user类的方法
public class Testioc {
@Test
public void testUser() {
//1.加载spring配置文件,根据配置文件创建对象
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//2.得到配置创建的对象
User user = (User)context.getBean("user");
System.out.println(user);
user.add();
}
}