Spring框架作为企业级应用框架已经完全的融入到了互联网各大项目中,框架中除了有利于提升开发效率外,里面的设计模式以及编码的思想也是值得我们去学习学习的,接下来我会从Spring最基础的搭建开始,慢慢的深入去学
-
Spring是什么
Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:
反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE企业应用开源框架。 -
Spring的jar包导入以及相关测试类的创建
想要开始搭建Spring就应该先导入相关的Spring的jar包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.0.2.RELEASE</version> </dependency>
Spring的jar包远不止这些,因为我们现在用到的就只有这几个jar包
当我们项目在开发工具里面创建了,jar包都导入了的时候,我们就可以开始写相关的测试类
这次我们假设一个去银行存钱的场景,我们这里有一个业务需求,就是当我们输入银行账号密码的时候我需要查询账户的存 款是多少,并且我还需要存入金额,因为测试类中我们需要提 供两个方法,一个是查询金额的方法,一个是存钱的方法
AccountDao接口类里面写了两个方法分别是queryAccount()用于查询金额,saveAccount()用于存入金额,并且AccountDaoImpl实现了AccountDao接口测试类都写好了,接下来就是xml的配置
-
Spring配置xml
我们需要在项目的resources目录下创建一个xml文件
配置文件都写好了,那接下来就是在AccountServiceImpl里面调用AccountDaoImpl里的方法了,按 照传统的方法,我们是直接在AccountServiceImpl 里面去new 一个AccountDaoImpl对象,比如这样
但是这样就造成了类与类之间的耦合性非常大,维护成本也相对来说比较的高,因此我们在使用Spring的时候是将对象交给Spring去创建,而Spring创建对象,我们就需要在xml里面去配 置相关的bean了我们现在需要用到AccountDaoImpl这个类对象,因为我们需要在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"> <bean id="accountService" class="com.spring.service.impl.AccountServiceImpl"></bean> </beans>
当在xml里面配置完这个信息之后,我们就可以去使用它了
按照国际惯例,我们先在main方法中测试一下
我直接用ClassPathXmlApplicationContext这个类来加载xml文件,并通过getBean()方法来获取这个类对象好了通过了main方法的测试,之后我们直接在类里面放上这段代码,我们就可以直接用了
这样我们就把对象交给spring去创建,使类与类之间很好的解耦,之后我们在AccountServiceImpl里 面直接通过AccountDao对象去调用相关的方法但是我们这样去配置这样去写没问题,但是没有用到spring最便捷的写法,那就是通过注解的方式去 注入对象
-
Spring基于注解的配置
使用注解可以极大简化开发,在使用注解之前我们需要更改下xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 告知 spring 创建容器时要扫描的包 --> <context:component-scan base-package="com.spring"></context:component-scan> </bean>
我们除了在配置文件里面用到一些额外的约束外,还加了一段用于创建容器需要扫描的包,改完xml之后我们就可以改一下我们的测试代码了
我们现在AccountDaoImpl类上加上一个@Component注解,并将这个类的id设置为accountDao,这样 当spring扫描到这个注解的时候就会创建类对象
之后我们在AccountServiceImpl加上这样一段代码
我们在AccountServiceImpl类里面加上了AccountDao这个类,并在接口上加了一个@Autowired注解,这样当容器创 建AccountDaoImpl对象的时候,会将对象自动装配给accounDao,基于注解开发的代码将至此就搞完了,我们就可以快速的开发了总结:其实在开发中我们更注重的效率,因为我们会用很多的开源项目,比如Springboot, SpringCloud等等,但是这些开源项目用久了,很多的基础的东西就会忘了,基础的东西忘了就会导致很多的实现原理也会忘掉,以至于碰到很多的基础东西都会去百度,所以我们在工作的过程中要及时去巩固那些基础的知识(如果你是大牛,也可以不用去巩固),不管是为了技术温故而知新,还是为了跳槽找工作
学习用于止境,在未来的道路上请勇敢
我是哪吒,是一名北漂程序员
你的三连就是我创作最大的动力