Spring 入门

Spring 入门

一、spring

1、spring简介

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

官网:https://spring.io/projects/spring-framework

2、spring所需要的依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.7.RELEASE</version>
</dependency>

3、spring优点

  • spring是一个开源的免费的框架(容器)
  • spring是一个轻量级的、非侵入式的框架
  • 控制反转(ioc)、面向切面编程(aop)
  • 支持事务的处理,对框架整合的支持

spring就是一个轻量级的控制反转和面向切面编程的框架

4、spring的组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QBakA0ss-1598689652925)(C:\Users\achao\AppData\Roaming\Typora\typora-user-images\image-20200822103946846.png)]

相关模块的解释:Spring模块组成

5、IOC控制反转的理念

  1. 常规场景:

在使用Service层调用Dao层的时候,Service层往往需要初始化一个Dao层实例来实现使用相应的方法,实际使用的时候如下代码所示:

// Dao层
public class UserDao{
   
    public UserDao(){
   
        
    }
    public String getUer(){
   
        System.out.println("正在使用UserDao查询用户");
    }
}

// Service层
public class UserService{
   
    private UserDao userdao = new UserDao();	// 经常要修改这个实例对象
    public UserService(){
   
        
    }
    public void getUser(){
   
        this.userdao.getUser();
    }
}

传统的这种方式使用的时候有一种弊端,当我们想在用户层面使用Service层来查询用户信息的时候,想用不同的Dao层方式,这时候就要程序员在后台修改实例对象,极为不方便。

  1. 解决办法就是,当用户调用Service的方法的时候,可以通过Service的set方法对里面的实例对象指定,从而实现控制权从程序员向用户的转变。

二、HellowSpring

1、 创建一个Hellow类

public class Hellow {
   
    private String str;

    public String getStr() {
   
        return str;
    }

    public void setStr(String str) {
   
        this.str = str;
    }

    @Override
    public String toString() {
   
        return "Hellow{" +
                "str='" + str + '\'' +
                '}';
    }
}

这里类中的set和get方法必须是完整地,因为spring中向Hellow类中的属性赋值的时候是使用set方法操作的

2、 在resources文件夹下创建一个spring的配置文件

<?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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

     <!--创建一个bean,id唯一标识,class指向这个类的全限定名。-->
    <bean id="hellow" class="com.achao.pojo.Hellow">	
		<!--为当前类中的属性赋值-->
        <property name="str" value="Spring"></property>		
    </bean>

</beans>

3、 在测试类中通过context获取到这个bean,并使用其中的方法:

public class Mytest {
   

    public static void main(String[] args) {
   
        // 获取spring的配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        // 通过Hellow的bean id创建了这个对象
        Object hellow = context.getBean("hellow");
        // 调用这个类的方法
        System.out.println(hellow.toString());
    }
}

4、 执行成功!

初次接触的时候感觉是配置比较麻烦,但是后面的学习会发现这种将代码解耦合的方式还是很方便的。所谓的IOC 就是把类交给spring来创建,管理,装配!

5、总结

  • 配置文件中使用bean标签将需要spring管理的类映射起来
  • 配置文件中使用properties标签对管理的类进行属性赋值(value,ref)
  • 如果类中的属性关联到另一个类,那这个类必须要注册了b
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值