首页 > 编程语言 >【学习笔记】第一个Spring程序-HelloSpring

【学习笔记】第一个Spring程序-HelloSpring

时间:2023-02-11 15:44:19浏览次数:47  
标签:配置文件 对象 Spring HelloSpring 笔记 str spring new public

第一个Spring程序-HelloSpring

使用Spring来写第一个程序,首先要将spring依赖导入,我们这里导入的是 spring-webmvc

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.0.RELEASE</version>
</dependency>

然后写一个实体类

package com.wang.pojo;
​
public class Hello {
    String str;
​
    public String getStr() {
        return str;
    }
​
    public void setStr(String str) {
        this.str = str;
    }
​
    @Override
    public String toString() {
        return "Hello{" +
                "str='" + str + '\'' +
                '}';
    }
}

注意:一定要写set方法

第三步是写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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
​
   <bean id="hello" class="com.wang.pojo.Hello">
       <property name="str" value="helloSpring"/>
   </bean>
</beans>

在配置文件中,一个bean就相当于一个对象,id相当于变量名,class相当于要new的对象

在bean标签中,property是对象的属性,name就是属性名,value是属性值

在第二步中,强调了一定要有set方法,原因就在这里,给属性设值是利用set方法进行注入

第四步,在运行程序中不需要在去new这个实体类对象

public void test02(){
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
​
    Hello hello = (Hello) context.getBean("hello");
    System.out.println(hello.toString());
}

通过new ClassPathXmlApplicationContext("beans.xml"); 来获取spring的上下文对象

其中的值就是spring配置文件的路径

获得上下文对象后,调用getBean方法获得对象

这个过程就叫做控制反转

控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建的,使用spring后,对象是由spring来创建的

反转:程序本身不创建对象,而变成被动的接受对象

依赖注入:利用set方法来进行注入


 

我们现在利用spring来实现上一篇文章中的案例:

有两个需求:一个是默认用户,一个是spring用户 即两个UserDao实现类

我们在spring配置文件中将这两个类配置进去,用来创建对象

然后将UserServiceImpl配置到文件中,它有一个属性就是UserDao的实现类

<bean id="defaultImpl" class="com.wang.dao.UserDaoImpl"/>
<bean id="springImpl" class="com.wang.dao.UserDaoSpringImpl"/>
​
​
<bean id="UerServiceImpl" class="com.wang.service.UserServiceImpl">
    <property name="userDao" ref="defaultImpl"/>
</bean>

注意:这里property中的属性值是ref因为是对象,value是基本数据类型

public void test03(){
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    UserServiceImpl userServiceImpl = (UserServiceImpl) context.getBean("UserServiceImpl");
​
    userServiceImpl.getUser();
}

 

通过这种方式去创建对象,不需要用户再去直接new UserDao,如果用户要增加或修改需求,可以直接在配置文件中修改UserServiceImpl的属性值即可。

标签:配置文件,对象,Spring,HelloSpring,笔记,str,spring,new,public
From: https://www.cnblogs.com/wztblogs/p/17111803.html

相关文章

  • 【SpringMVC源码三千问】DispatcherServlet源码解析
    DispatcherServlet#doDispatch()是SpringMVC处理请求分发的方法,只要是springmvc处理的http请求,都会经过DispatcherServlet的请求分发处理,从而调用相应的handler......
  • 第五天笔记
    第五天笔记(数组)数据结构数据结构主要是数据的一个存储和逻辑结构的体现。只要能存储数据的一个结构我们就称为数据结构存储结构循序存储结构随着数据量的增加......
  • java——spring boot集成redis——SpringDataRedis入门示例——redisTemplate代码验证
    pom文件:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc......
  • 【学习笔记】多项式学习笔记3:全家桶科技
    点击查看目录目录多项式求导与积分多项式牛顿迭代多项式求逆常规倍增法牛顿迭代法多项式开根常规倍增法牛顿迭代法多项式对数函数多项式指数函数多项式半家桶封装模板......
  • springboot高级属性设置
    首先就是在spring里面怎么提取配置文件中的属性,这个有两种,一种自己编写的bean,一种是第三方bean(想Druid包这种),先说说第一种吧。先自己创建一个类,这个类里面的属性,要和那个y......
  • PLC入门笔记6
    计数器指令及其应用计数器指令介绍很多场合需要进行计数操作。例如电机启动次数、生产线物料经过次数、位置传感器传送的脉冲次数等。计数器分为普通和高速两种。比PLC......
  • springboot validation校验基本用法
    常用的校验注解:@Null被注释的元素必须为null@NotNull被注释的元素不能为null@AssertTrue该字段只能为true@AssertFalse该字段的值只能为false@Min(value)......
  • java——spring boot集成redis——SpringDataRedis入门示例——redisTemplate使用注意
    写入“虎哥”后,获取如下:       存进去的key和value。都默认为java对象了。redisTemplate底层默认使用jdk序列化工具进行序列化。       ......
  • 组合数学 学习笔记
    容斥原理摩根定理交集的补等于补集的并,并集的补等于补集的交。\(\overline{A\cupB}=\overline{A}\cup\overline{B},\overline{A\capB}=\overline{A}\cap\ove......
  • SpringCloudAlibaba项目搭建流程
    SpringCloudAlibaba作为一个微服务架构,往往会创建一个父工程管理整个项目的依赖关系。每个子项目代表一个微服务,可以各自选择所需的组件进行使用。因此,搭建SpringCloud......