spring入门

简介: ioc:https://www.jianshu.com/p/695b2a25a6ff教学视频:https://www.bilibili.com/video/av14839030/在eclipse里面遇到的问题① .

ioc:https://www.jianshu.com/p/695b2a25a6ff
教学视频:https://www.bilibili.com/video/av14839030/

在eclipse里面遇到的问题

① .遇到红色波浪线就把鼠标放在上面,导入jar包用在crtl+shift+M
②.The constructor ClassPathXmlApplicationContext(String) refers to the missing type出现此问题可能是jar包没有导入成功,将jar包再导入一次

ioc底层原理

IOC:控制反转,把对象创建交给spring进行配置
DI:依赖注入,向类里面的属性设置值
依赖注入不能单独存在,需在ioc基础上完成操作。

img_e0a488a885d615d3962eada28df13d38.png
1.png

img_6251706f57c9ab8adac20dcfb6621625.png
2.png

四个最基本的jar包

beans core  context  expression  common-logging//日志

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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

测试文件

package cn.itcast.ioc;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.itcast.property.PropertyDemo1;
public class TestIOC {  
    @Test
    public void testUser() {
        ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
        PropertyDemo1 demo1 = (PropertyDemo1) context.getBean("demo");
        demo1.test1();
      }
}

Bean标签常用属性

①.id
起名称,可以任意命名
不能包含特殊符号
根据id得到配置对象

②.class属性
创建对象所在类的全路径

③.name属性
功能和id属性一样,name可以包含特殊字符

④.scope属性
在测试文件中调用两次函数:

img_a14790a8bfbcfa236aab44b2b1c19082.png
4.png

  • singleton 默认值,单例
    运行结果:


    img_8e0df622982802a460e9372ef4bf5716.png
    3.png
  • prototype 多例


    img_4c3b225058ef6bb76590782a17a08f38.png
    5.png

    运行结果:


    img_2ec8a0387194623d06c7b6d7666a41b7.png
  • request 创建对象并把对象放到request里面

  • session 创建对象并把对象放到session里面

  • globalSession 创建对象并把对象放到globalSession里面

属性注入:(spring里面只支持前两种)

img_77c2123c0e75237dd43d93e60339eae3.png
3.png

set方法注入

package cn.itcast.property;
public class Book {
    private String bookname;
    public void setBookname(String bookname) {
        this.bookname=bookname;
    }
    public  void demobook() {
        System.out.println("book...."+bookname);
        
    }
}

然后在applicationContext.xml文件中使用以下方法给bookname赋值

img_78feb6b04b0b97297c4356f0faae7138.png
1.png

有参数构造注入

package cn.itcast.property;
public class PropertyDemo1 {
    private String username;
    public PropertyDemo1(String username) {
        this.username=username;
    }
    public void test1() {
        System.out.println("demo1........"+username);
    }
}

然后在applicationContext.xml文件中使用以下方法给username赋值

img_7268535f36881a90aaec887ad1f5b289.png
1.png

注入对象类型属性
通过set方法在UserService.java调用UserDao.java中的add函数
UserService.java

package cn.itcast.ioc;
public class UserService {
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao= userDao;
    }
      public void add() {
         System.out.println("Service........");
         userDao.add();
   }
}

UserDao.java

package cn.itcast.ioc;
public class UserDao {
     public void add() {
           System.out.println("Dao........");
       }
}

然后在applicationContext.xml文件中使用以下方法给调用

img_8d2ef3ed315cc239e5bf56770a488eeb.png
1.png

目录
相关文章
|
4月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
4月前
|
Java
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
这篇文章是Spring5框架的实战教程,深入讲解了AOP的基本概念、如何利用动态代理实现AOP,特别是通过JDK动态代理机制在不修改源代码的情况下为业务逻辑添加新功能,降低代码耦合度,并通过具体代码示例演示了JDK动态代理的实现过程。
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
2月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
29 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
2月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
31 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
4月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
4月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
4月前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
4月前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
4月前
|
XML Java 数据格式
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
这篇文章是Spring5框架的入门教程,详细讲解了IOC容器中Bean的自动装配机制,包括手动装配、`byName`和`byType`两种自动装配方式,并通过XML配置文件和Java代码示例展示了如何在Spring中实现自动装配。
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)