文章目录
目录
四、在resources文件夹中创建一个任意名称的xml文件的
一、什么是Spring
Spring是一个分层的Java SE/EE(web) full-stack(一站式)轻量级开源框架,以 IOC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。
一站式: Spring可以提供任何javaEE方向的开发支持。
轻量级: 当前的框架对硬件的要求不高,容易上手,容易使用
开源: 免费 开放源代码
无缝链接: 整合我们目前市面上使用javaEE开发技术(熔炉,融化各种形状和材质的铁块)
在java三层架构当中分别提供了相应技术:
表现层(web层) :SpringMVC (框架)
业务层(service层) :Bean管理(IOC容器)
持久层(dao层) :JdbcTemplate模板对象以及提供了ORM模块整合其他优秀的持久层技术
二、Spring框架的优势
方便解耦,简化开发 : Spring 就是一个大工厂,可以管理所有对象的创建和依赖关系维护,交给Spring管理
AOP 编程的支持 :可以方便的实现对程序进行权限拦截,日志记录,运行的监控
声明式事务的支持 :通过配置方式完成对事务的管理,无需手动编程
方便程序的测试 :对Junit支持,可以通过注解方便的对Spring程序进行测试
整合外部优秀技术 : Spring内部提供了对各种优秀框架(Hibernate,Mybatis,Quartz等)的直接支持
javaEE技术的封装 :Spring对javaEE开发当中复杂难用的API(JavaEmail, RMI等)进行封装,降低了这些API的使用难度
三、SpringIOC机制的详解
SpringIOC:书籍一般翻译为控制反转、控制倒置等
控制:Spring提供了一个容器用于控制java开发中的对象
反转的含义:程序本身不创建对象,而变成被动的接收对象
1996 年,Michael Mattson 在一篇有关探讨面向对象框架的文章中,首先提出了 IOC 这个概念。简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。
由于引入了中间的IOC容器,所以使得A、B、C、D四个对象没有直接耦合关系,四个齿轮的转动全部依靠中间的IOC容器来进行,所以很多人把IOC容器看作粘合剂。
IOC作用总结
IOC本质上就是一个大工程,大容器。主要作用就是创建和管理对象的依赖关系,削减计算机程序的耦合(解除我们代码中的依赖关系),提高程序的可扩展性和可维护性。
SpringIOC机制的详解
一、先构建maven工程,添加依赖
<properties>
<spring.version>5.2.5.RELEASE</spring.version>
</properties>
<!--导入spring的context坐标,context依赖core、beans、expression aop-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
二、创建持久层和实现类
//UserMapper接口 package com.ujiuye.mapper; public interface UserMapper { void getUser(); }
//UserMapperImpl实现类
public class UserMapperImpl implements UserMapper{ public void getUser(){ System.out.println("默认获取用户的数据"); } }
三、创建业务层和实现类
//UserService接口 import com.ujiuye.mapper.UserMapper; public interface UserService { void getUser(); void setUserMapper(UserMapper userMapper); }
//UserServiceImpl实现类
public class UserServiceImpl implements UserService{ private UserMapper userMapper; //利用set进行动态实现值的注入 @Override public void getUser() { userMapper.getUser(); } @Override public void setUserMapper(UserMapper userMapper) { this.userMapper=userMapper; } }
四、在resources文件夹中创建一个任意名称的xml文件的
//规范命名为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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 使用Spring来创建对象,在Spring这些都成为Bean id等价于变量名 class相对与new的对象 property相当于给对象中的属性设置一个值 --> <bean name="userMapperImpl" class="com.ujiuye.mapper.UserMysqlMapperImpl"/> <bean name="userServiceImpl" class="com.ujiuye.service.UserServiceImpl"/> </beans>
五、测试类
public class TestSpring { @Test public void test1(){ //获取Spring的上下文对象:拿到Spring的容器 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //我们的对象现在都在Spring中管理了,我们要使用现在直接去里面取出来就可以了 Hello hello =(Hello) context.getBean("hello"); UserServiceImpl userService =(UserServiceImpl) context.getBean("ServiceImpl"); userService.getUser(); }
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。