spring学习总结

spring学习总结spring学习总结

大家好,又见面了,我是你们的朋友全栈君。

    最近几天学习了一些关于spring的东西,以前对spring的认识最大的就是控制反转和依赖注入,原理也不是很清楚。今天就谈谈控制反转和依赖注入新的认识。

    控制反转就是把创建对象的过程交给spring去管理。最初我们采用new来创建一个新的对象,加入了spring之后,就可以通过spring来创建,主要有两种方式,一种是通过配置文件,另一种是通过注解。 

如果是通过配置文件来创建对象的代码为:

<bean id="userService" class="cn.tgb.UserService"/〉

    class指的是需要实例化的类,这里是类的完整路径。

创建一个UserService类的对象:

public void testUser(){
    //1.加载spring配置文件
    ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
    //2.得到创建的对象
    UserService user = context.getBean("userService");
}

通过注解创建对象就是在要实例的类上面加上注解。

@Component(value="user")
public class UserService{
   public void add(){
       system.out.println("add-method");
   }
}

创建对象的注解有四个,分别为:Component,Controller,Service,Repository。

属性注入就是创建对象的时候,向类中的属性赋值。在spring中,我们可以通过set方法或有参的构造函数注入。比如说我们通过有参数的构造函数注入:

向UserService类中的username属性注入值为“张三”:

<!--使用有参数的构造注入属性-->
<bean id="userService" class="cn.tgb.UserService"〉
    <!--使用有参构造注入,name:属性名称,value:具体的属性值-->
    <constructor-arg name="username" value="张三"/>
<bean/>

UserService类:

public class UserService{
    private String username;
    
    public UserService(String username){
        this.username = username;
    }

    public void add(){
         System.out.println("add user:" + username);
    }
}

使用set方法注入:

public class UserService{
    private String username;
    
    public setUserName(String username){
        this.username = username;
    }

    public void add(){
         System.out.println("add user:" + username);
    }
}

配置文件:

<!--使用set方法注入属性-->
<bean id="userService" class="cn.tgb.UserService"〉
    <!--注入属性值,name:属性名称,value:具体的属性值-->
    <property name="username" value="张三"><property/>
<bean/>

    属性的注入跟创建对象一样,既可以通过配置文件设置,也可以用注解的方式。注入属性的两个关键字为:Autowired和Resource。把注解加到对应的属性上面就可以。

     感觉spring刚刚入了一点门,接下来再深入学习。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105652.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月25日 上午10:00
下一篇 2022年4月25日 上午10:00


相关推荐

  • python字典详解_python字典get方法

    python字典详解_python字典get方法字典字典的key和value一一对应的,字典是可变的,也是有序的(python3.6版本开始字典有序),可迭代的增加元素当key不存在时,直接赋值a={"status"

    2022年7月31日
    10
  • qt中readyread信号的使用_心动的信号cp组合有哪些

    qt中readyread信号的使用_心动的信号cp组合有哪些本文主要介绍readyread函数的触发机制,会涉及到一点tcp/ip和流的知识。tcp/ip和流这方面其他朋友介绍很多了,这里我就不再赘述。本文不打算使用太过专业的词汇,一方面主要目的是让大家明白,另一方面是我也不太专业。一、问题描述:你之所以会来看我这篇文章,大概是遇到了一下几个问题:1、使用QTcpSocket时,readyread函数没有触发,或者触发了,但是触发次数不是自己想…

    2025年10月14日
    3
  • linux创建新账号命令,linux创建用户命令

    linux创建新账号命令,linux创建用户命令创建用户 设置密码 修改用户 删除用户 useraddtestu 创建用户 testuserpass 给已创建的用户 testuser 设置密码说明 新创建的用户会在 home 下创建一个用户目录 testuseruser 修改用户这个命令的相关参数 userdeltestu 删除用户 testuserrm rftestuser 删除用户 testus

    2026年3月16日
    2
  • BP算法详解_bp算法的基本思想

    BP算法详解_bp算法的基本思想说到神经网络,大家看到这个图应该不陌生:这是典型的三层神经网络的基本构成,LayerL1是输入层,LayerL2是隐含层,LayerL3是隐含层,我们现在手里有一堆数据{x1,x2,x3,…,

    2022年8月2日
    9
  • C语言再学习 — 段错误(核心已转储)

    参看:Linux下的段错误产生的原因及调试方法参看:Linux环境下段错误的产生原因及调试方法小结参看:维基百科–Segmentationfault参看:LINUX内核段错误调试详细指南精品培训PPT讲义一、什么是段错误?一旦一个程序发生了越界访问,cpu就会产生相应的保护,于是segmentationfault就出现了,通过上面的解释,段错误应该就是访问了不可访问的内存,这个内存区要

    2022年4月11日
    66
  • Python学习手册之正则表达式示例–邮箱地址提取

    Python学习手册之正则表达式示例–邮箱地址提取Python学习手册之正则表达式示例–邮箱地址提取

    2022年4月21日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号