夜光带你走进Spring(一)

版权声明:Genius https://blog.csdn.net/weixin_41987706/article/details/89307708

夜光序言:

没有谁一天24小时都在忙,所谓的忙与闲,只不过是心里面觉得哪件事更重要罢了。

 

 

正文:

夜光:框架概述:

Struts2:  基于mvc模式的应用层框架

主要是作为控制层组件,javabean, jsp

Hibernate,mybatis : 持久层组件,简化jdbc操作

Spring:   主要有六大模块功能

 事务管理

 与其他框架整合

 

Mvc开发模式:

基于mvc模式的项目分层

1. Spring框架

Spring ,  框架精华来了~

 

框架理解

框架,都会预先实现一些功能,给开发人员开发提供便利~

  提高开发效率、提升程序可扩展性、健壮~

专业术语

高内聚、低耦合:

类内部的关系越紧密越好,类与类的关系越少越好~

非侵入式设计:

侵入式设计:

引入的组件对现有的类的结构会有影响,这种就是“侵入式设计”的组件~

Struts2:     侵入式设计~

Hibernate:   非侵入式设计~

非侵入式设计:

引入组件对现有的类的结构没有影响~

Spring, 非侵入式设计

  IOC 容器

Inversion of control  控制反转

控制反转容器~   -à 对象创建的问题~

解释:

User user = new User();  自己控制对象的创建

现在需要对象,自己不创建,交给外部的容器创建,叫控制反转~

IOC容器= bean.xml配置 + ApplicationContext容器类

DI,  dependency  injection 依赖注入

创建对象后,处理对象的依赖关系~

User  user = new User();

user.setAddress(..)  ;// 需要DI(依赖注入)

 

  Aop…

 

Spring框架

Spring 开源框架,提供的是一站式解决方案~

六大模块:

…..

 

 

Spring 第一个案例, 解决项目中如何创建对象

 

1) 引入jar文件 (3.2版本)

commons-logging-1.1.3.jar       【单独下载】

spring-beans-3.2.5.RELEASE.jar 【spring源码, bean节点管理】

spring-context-3.2.5.RELEASE.jar      【spring上下文类】

spring-core-3.2.5.RELEASE.jar         【IOC容器】

spring-expression-3.2.5.RELEASE.jar    【spring表达式】

 

注意:

使用的版本Spring3.2

在这个版本中,只有spring自身的核心功能,spring依赖的其他组件,需要单独下载~ 例如:日志jar文件,就需要单独下载~

 

2) 新建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"

    xmlns:context="http://www.springframework.org/schema/context"

    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">

 

</beans>        

 

3) 配置

 

<~-- 创建Dao实例 -->

<bean id="userDao" class="cn.Genius.dao.UserDao"></bean>

 

<~-- 创建Service实例 -->

<bean id="userService" class="cn.Genius.service.UserService">

<property name="userDao" ref="userDao"></property>

</bean>

 

<~-- 创建Action实例 -->

<bean id="userAction" class="cn.Genius.action.UserAction">

<property name="userService" ref="userService"></property>

</bean>

 

4) 测试

// 从IOC容器获取对象

@Test

public void testApp2() throws Exception {

// 容器对象(加载applicationContext.xml配置文件)

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

// 获取对象

UserAction userAction = (UserAction) ac.getBean("userAction");

userAction.execute();

}

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_41987706/article/details/89307708