建设银行网站重置密码外国人做的汉子网站
news/
2025/9/29 1:53:31/
文章来源:
建设银行网站重置密码,外国人做的汉子网站,wordpress 泛解析,摄影培训网站建设一、概念 依赖注入#xff08;Dependency Injection,DI#xff09;。 测试pojo类 : Address.java 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 二、 注入方式
2.1构造器注入
我们在之前的案例已经…一、概念 依赖注入Dependency Injection,DI。 测试pojo类 : Address.java 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器来设置和装配 . 二、 注入方式
2.1构造器注入
我们在之前的案例已经讲过了
2.2Set 注入 重点
要求被注入的属性 , 必须有set方法 , set方法的方法名由set 属性首字母大写 , 如果属性是boolean类型 , 没有set方法 , 是 is .
环境搭建
测试pojo类 :
Address.java
package com.yanyu.pojo;import lombok.Data;Data
public class Address {private String address;}Student.java
package com.yanyu.pojo;import lombok.Data;import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
Data
public class Student {private String name;private Address address;private String[] books;private ListString hobbys;private MapString,String card;private SetString games;private String wife;private Properties info;public void show(){System.out.println(name name ,address address.getAddress() ,books);for (String book:books){System.out.print(book\t);}System.out.println(\n爱好:hobbys);System.out.println(card:card);System.out.println(games:games);System.out.println(wife:wife);System.out.println(info:info);}
}1、常量注入
bean idstudent classcom.kuang.pojo.Studentproperty namename value小明//bean
测试 Testpublic void test01(){ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);Student student (Student) context.getBean(student);System.out.println(student.getName());}
2、Bean注入
注意点这里的值是一个引用ref bean idaddr classcom.yanyu.pojo.Addressproperty nameaddress value重庆//beanbean idstudent classcom.yanyu.pojo.Studentproperty namename value小明/property nameaddress refaddr//bean
3、数组注入
property namebooksarrayvalue西游记/valuevalue红楼梦/valuevalue水浒传/value/array/property
4、List注入 property namehobbyslistvalue听歌/valuevalue看电影/valuevalue爬山/value/list/property
5、Map注入
property namecardmapentry key中国邮政 value456456456465456/entry key建设 value1456682255511//map/property
6、set注入 property namegamessetvalueLOL/valuevalueBOB/valuevalueCOC/value/set/property
7、Null注入 property namewifenull//property
8、Properties注入 property nameinfopropsprop key学号20190604/propprop key性别男/propprop key姓名小明/prop/props/property
测试 Testpublic void test01(){ApplicationContext context new ClassPathXmlApplicationContext(beans.xml);Student student (Student) context.getBean(student);System.out.println(student.show());}
2.3第三方注入
p命名和c命名注入
User.java 【注意这里没有有参构造器】
package com.yanyu.pojo;import lombok.Data;Data
public class User {private String name;private int age;Overridepublic String toString() {return User{ name name \ , age age };}
}1、P命名空间注入 : 需要在头文件中加入约束文件
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:phttp://www.springframework.org/schema/pxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdbean iduser classcom.yanyu.pojo.User p:name烟雨 p:age18/
/beans
2、c 命名空间注入 : 需要在头文件中加入约束文件
发现问题爆红了刚才我们没有写有参构造
解决把有参构造器加上这里也能知道c 就是所谓的构造器注入 导入约束 : xmlns:chttp://www.springframework.org/schema/c!--C(构造: Constructor)命名空间 , 属性依然要设置set方法--bean iduser classcom.kuang.pojo.User c:name狂神 c:age18/
测试代码 Testpublic void test02(){ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);User user (User) context.getBean(user);System.out.println(user);}
三、Bean的作用域
在Spring中那些组成应用程序的主体及由Spring IoC容器所管理的对象被称之为bean。简单地讲bean就是由IoC容器初始化、装配及管理的对象 . 几种作用域中request、session作用域仅在基于web的应用中使用不必关心你所采用的是什么web应用框架只能用在基于web的Spring ApplicationContext环境。
Singleton
当一个bean的作用域为Singleton那么Spring IoC容器中只会存在一个共享的bean实例并且所有对bean的请求只要id与该bean定义相匹配则只会返回bean的同一实例。Singleton是单例类型就是在创建起容器时就同时自动创建了一个bean的对象不管你是否使用他都存在了每次获取到的对象都是同一个对象。注意Singleton作用域是Spring中的缺省作用域。要在XML中将bean定义成singleton可以这样配置
bean idServiceImpl classcn.csdn.service.ServiceImpl scopesingleton 测试 Testpublic void test03(){ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);User user (User) context.getBean(user);User user2 (User) context.getBean(user);System.out.println(useruser2);}
Prototype
当一个bean的作用域为Prototype表示一个bean定义对应多个对象实例。Prototype作用域的bean会导致在每次对该bean请求将其注入到另一个bean中或者以程序的方式调用容器的getBean()方法时都会创建一个新的bean实例。Prototype是原型类型它在我们创建容器的时候并没有实例化而是当我们获取bean的时候才会去创建一个对象而且我们每次获取到的对象都不是同一个对象。根据经验对有状态的bean应该使用prototype作用域而对无状态的bean则应该使用singleton作用域。在XML中将bean定义成prototype可以这样配置 bean idaccount classcom.foo.DefaultAccount scopeprototype/ 或者bean idaccount classcom.foo.DefaultAccount singletonfalse/
Request
当一个bean的作用域为Request表示在一次HTTP请求中一个bean定义对应一个实例即每个HTTP请求都会有各自的bean实例它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext情形下有效。考虑下面bean定义 bean idloginAction classcn.csdn.LoginAction scoperequest/
针对每次HTTP请求Spring容器会根据loginAction bean的定义创建一个全新的LoginAction bean实例且该loginAction bean实例仅在当前HTTP request内有效因此可以根据需要放心的更改所建实例的内部状态而其他请求中根据loginAction bean定义创建的实例将不会看到这些特定于某个请求的状态变化。当处理请求结束request作用域的bean实例将被销毁。
Session
当一个bean的作用域为Session表示在一个HTTP Session中一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。考虑下面bean定义 bean iduserPreferences classcom.foo.UserPreferences scopesession/
针对某个HTTP SessionSpring容器会根据userPreferences bean定义创建一个全新的userPreferences bean实例且该userPreferences bean仅在当前HTTP Session内有效。与request作用域一样可以根据需要放心的更改所创建实例的内部状态而别的HTTP Session中根据userPreferences创建的实例将不会看到这些特定于某个HTTP Session的状态变化。当HTTP Session最终被废弃的时候在该HTTP Session作用域内的bean也会被废弃掉。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921348.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!