SSM
· IOC
·AOP
初识Spring :
Spring全家桶
Spring Framework 底层框架,设计性框架
Spring Boot 加速开发,提高开发速度
Spring Cloud 分布式开发
Spring Framework系统架构
Spring Framework是Spring生态圈最基础的项目
· Core Container:核心容器
· Aspects: A OP思想实现
· AOP: 面向切面编程
· Data Access: 数据访问
· Data Integration: 数据集成
· Web: Web开发
· Test: 单元测试与集成测试
核心概念: IoC/DI,IoC容器,Bean
目标: 充分解耦
· IoC:(Inversion of Control)控制反转
解决耦合度偏高的问题,不再主动new产生对象,转为由外部提供对象
· Spring技术对IoC思想进行实现
· Spring提供一个容器,IoC容器来充当“外部” == Core Container
· IoC容器负责对象的创建,初始化等 被创建或者管理的对象在IoC中统称为Bean
· DI(Dependency Injection)依赖注入
· 在容器中建立bean和bean之间的依赖关系的整个过程,为依赖注入
最终效果:使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系
入门案例
定义在Spring管理的类(接口)
public interface BookDao {
public void save();
}
public class BookDaoImpl implements BookDao {
public void save(){
System.out.println(\"book dao\");
}
}
建立maven依赖 ==== Spring环境
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
在Spring配置xml文件中配置bean
<!-- 2.配置bean-->
<bean id=\"bookDao\" class=\"com.liuxin.dao.impl.BookDaoImpl\"/>
calss配实现类,需要用它创建对象
id配一个名字
注意:bean定义时id属性在同一个上下文不能重复
在主方法中运行
public static void main(String[] args) {
//3.获取IoC容器
ApplicationContext ctx=new ClassPathXmlApplicationContext(\"applicationContext.xml\");// 这里参数为配置的spring的xml文件名
//4.获取bean
BookDao bookDao = (BookDao) ctx.getBean(\"bookDao\");
//5.调用bean对象方法
bookDao.save();
}
运行报错:不支持发行版本5
解决办法:设置 =》构建,执行,部署 =》java编译器 =》将目标字节码版本改为9
DI入门案例
-----基于上一个案例
public class BookServiceImpl implements BookService {
//删除业务层中使用new方法创建的dao对象
//private BookDao bookDao=new BookDaoImpl();
private BookDao bookDao;
public void save(){
System.out.println(\"book service\");
bookDao.save();
}
//提供对应的set方法
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}
配置service和dao的关系
<!-- 2.配置bean-->
<bean id=\"bookDao1\" class=\"com.liuxin.dao.impl.BookDaoImpl\"/>
<bean id=\"bookService\" class=\"com.liuxin.service.impl.BookServiceImpl\">
<!-- 7.置service和dao的关系-->
<property name=\"bookDao\" ref=\"bookDao1\"/>
</bean>
property标签表示配置当前bean的属性
name属性表示配置哪一个具体的属性 -----配实例的变量名
ref属性表示参照哪一个bean ------配id
bean配置
基本配置
别名配置
// id和name地位相同
bean作用范围配置
bean实例化
1.构造方法
调用的是无参构造方法
如果无参构造方法不存在,将抛出异常BeanCreationException
来源:https://www.cnblogs.com/suiyiliuxin-629728/p/16767571.html
本站部分图文来源于网络,如有侵权请联系删除。