百木园-与人分享,
就是让自己快乐。

ssm第一天学习

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: 单元测试与集成测试

 

image-20221007181948836

 

核心概念: 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

image-20221007203454134

 

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配置

基本配置

image-20221007225937796

别名配置

image-20221007231749991

// id和name地位相同

bean作用范围配置

image-20221007232517407

bean实例化

1.构造方法

调用的是无参构造方法

如果无参构造方法不存在,将抛出异常BeanCreationException


来源:https://www.cnblogs.com/suiyiliuxin-629728/p/16767571.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » ssm第一天学习

相关推荐

  • 暂无文章