【狂神】Spring5笔记(1-9)

目录

首页:

1.Spring

1.1 简介

1.2 优点

2.IOC理论推导

3.IOC本质

4.HelloSpring

ERROR

5.IOC创建对象方式

5.1、无参构造 这个是默认的

5.2、有参构造

6.Spring配置说明

6.1、别名

6.2、Bean的配置

6.3、import

7.DL依赖注入环境

7.1 构造器注入

7.2 Set方式注入

7.3 案例(代码)

7.3.1.Student类

 7.3.2 Address类

 7.3.3 beans.xml

 7.3.4 Mytest4类


首页:

        我是跟着狂神老师的视频内容来整理的笔记,不得不说,真的收获颇丰,希望这篇笔记能够帮到你。                                         

..... (¯`v´¯)♥  
.......•.¸.•´   
....¸.•´        
... (           
 ☻/              
/▌♥♥            
/ \ ♥♥          
                

1.Spring

1.1 简介

由Rod Johnson创建,雏形是interface21框架。理念是:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!

  • SSH: Struct2+Sppring+Hibernate
  • SSM:SpringMVC+Spring+Mybatis



org.springframework
spring-webmvc
6.0.11


org.springframework
spring-jdbc
6.0.11

1.2 优点

【狂神】Spring5笔记(1-9)_第1张图片

2.IOC理论推导

1.UserDao接口

【狂神】Spring5笔记(1-9)_第2张图片

2.UserDaolmpl实现类

【狂神】Spring5笔记(1-9)_第3张图片

3.UserService业务接口

【狂神】Spring5笔记(1-9)_第4张图片

4.UserServicelmpl业务实现类

【狂神】Spring5笔记(1-9)_第5张图片

上面的四个类是我们写项目时的传统的写法。主要就是在实现类中实现功能,最后在业务实现类中最终实现。

通过在Servicelmpl中创建一个新的的UserDao对象,是可以实现方法的调用的,但是当后面所调用的类变得越来越多以后,这种方法就不太适合了。比如说,多了很多类似于UserDaolmpl的实现类,但是想要调用他们的话,就必须在其对应的Service中进行更改,太过于麻烦,耦合性太强

【狂神】Spring5笔记(1-9)_第6张图片

解决方法:

public class UserServicelmpl implements UserService{
    private UserDao userDao;
    //利用set进行动态实现值的注入
    public void setUserDao(UserDao userDao){
        this.userDao=userDao;
    }
    public void getUser() {
        userDao.getUser();
    }
}

实现类:

【狂神】Spring5笔记(1-9)_第7张图片

3.IOC本质

【狂神】Spring5笔记(1-9)_第8张图片

【狂神】Spring5笔记(1-9)_第9张图片

简言之,就是把控制权交给了用户而不是程序员,我们可以通过所选择的来呈现不同的页面或者说是表现方式。用户的选择变多了。

4.HelloSpring

这是一个视频里的小案例,旨在加深对bean的理解。beans.xml的正规名叫做applicationContext.xml,到后面可以用Import进行导入。

代码:

//1.Hello
package org.example;
public class Hello {
    private String str;
    public String getStr() {
        return str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    @Override
    public String toString() {
        return "Hello{"+
                "str="+str+'\''+'}';
    }
}
//2.beans.xml


    
    
        
    


//3.实现测试类MyTest
import org.example.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
        //获取Spring的上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Hello hello = (Hello) context.getBean("hello"); //这里的hello就是创建对象的变量名
        System.out.println(hello.toString());
    }
}

【狂神】Spring5笔记(1-9)_第10张图片

【狂神】Spring5笔记(1-9)_第11张图片

idea中自动生成返回对象的快捷键

ctr+alt+v

ERROR

1.

【狂神】Spring5笔记(1-9)_第12张图片

原因:JDK版本过低造成,要大于1.8,我用的2.0

5.IOC创建对象方式

5.1、无参构造 这个是默认的

5.2、有参构造

  • 通过下标获得
  
  • 通过变量的类型获得,但不建议用,因为当变量名有很多时便不适用了
  
  • 通过变量名来获得
  

6.Spring配置说明

6.1、别名

起别名,并不是覆盖原有的变量名

6.2、Bean的配置

【狂神】Spring5笔记(1-9)_第13张图片

6.3、import

【狂神】Spring5笔记(1-9)_第14张图片

7.DL依赖注入环境

7.1 构造器注入

前面已经说过了。

7.2 Set方式注入

  • 依赖注入:Set注入!

               1.依赖:bean对象的创建依赖于容器spring

               2.注入:bean对象中的所有属性,由容器来注入

7.3 案例(代码)

一个比较全的案例,包括了String,类,数组,list集合,Map,Set,Null,Properties。

代码如下:

7.3.1.Student类

//1.Student
package org.example;

import java.util.*;

public class Student {
    private String name;
    private Address address;
    private String[] books;
    private List hobbys;
    private Map card;
    private Set games;
    private String wife; //空指针
    private Properties info; //不是很理解这个的意思

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String[] getBooks() {
        return books;
    }

    public void setBooks(String[] books) {
        this.books = books;
    }

    public List getHobbys() {
        return hobbys;
    }

    public void setHobbys(List hobbys) {
        this.hobbys = hobbys;
    }

    public Map getCard() {
        return card;
    }

    public void setCard(Map card) {
        this.card = card;
    }

    public Set getGames() {
        return games;
    }

    public void setGames(Set games) {
        this.games = games;
    }

    public String getWife() {
        return wife;
    }

    public void setWife(String wife) {
        this.wife = wife;
    }

    public Properties getInfo() {
        return info;
    }

    public void setInfo(Properties info) {
        this.info = info;
    }

    @Override
    public String toString() {
        return "Student{"+
                "name="+name+'\''+
                ",address="+address.toString()+
                ",books="+ Arrays.toString(books)+
                ",hobbys="+hobbys+
                ",card="+card+
                ",games="+games+
                ",wife="+wife+'\''+
                ",info="+info+
                '}';
    }
}

 7.3.2 Address类

//2.Address类
package org.example;

public class Address {
    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return address;
    }
}

 7.3.3 beans.xml

//3.beans.xml



    
        
            西安
        
    

    
        
        
        
            
                语文
                数学
                英语
                化学
            
        
        
            
                篮球
                足球
                台球
            
        
        
            
                
                
            
        
        
            
                LOL
                COC
            
        
        
            
        
        
            
                12345
                
                张三
            
        
    
    

 7.3.4 Mytest4类

//4.MyTest测试类
import org.example.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest4 {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Student student = (Student) context.getBean("student");
        System.out.println(student.toString());
    }
}

最后,祝大家身体健康,学习快乐,天天向上!

你可能感兴趣的:(Spring,笔记,前端,java,spring,狂神)