網站首頁 編程語言 正文
bean管理指的是兩件事:
1.spring創建對象
2.屬性注入 給對象中的屬性賦值
1.bean創建對象:
無參構造函數
xml文件:
屬性值:id是唯一的標識 ,也別的也可以 ,class是對象所在的全路徑 包名.類名
創建對象的時候,默認執行的是無參的構造函數,所以需要類中要有無參構造函數,否則會報錯
有參構造函數
java如果定義了一個有參構造函數,則不會自動生成無參的構造函數,和c++一樣,這時如果不想重新寫無參構造函數,就想使用有參的構造函數,應該這樣寫
test類中生成user對象
這是通過絕對路徑讀取xml文件
ApplicationContext context =new FileSystemXmlApplicationContext("d:\\IdeaProjects\\untitled\\test_user.xml");
通過相對路徑讀取xml文件?
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class test {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("demo1.xml");
//第一個參數是xml文件中該類對應的bean的id的值
User user =(User) applicationContext.getBean("user1",User.class);
System.out.println(user.toString());
}
}
有三種屬性注入的方法:
1)set方法
1……在?user類中創建屬性,并生成對應的set方法
public class User {
public User(int aa) {
this.aa = aa;
}
public User() {
}
public void setAa(int aa) {
this.aa = aa;
}
public int aa;
public static void add1()
{
System.out.println("nihao shijie ");
}
}
2…… xml文件中?先配置對象的創建,再配置屬性的注入
2)簡化的set p名稱空間注入
實際用的不多
1......在xml文件中進行屬性注入
xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/
2.....在bean中設置屬性
3)通過xml文件設置屬性的空值和特殊值?
]]>
<北京> 是要放的特殊值? ?其他的是固定格式 也這樣寫就行了
4)通過xml方式注入集合類型屬性
1.注入數組類型屬性
2.注入list 集合類型
3.注入map 集合類型
4.注入 set集合類型
5.注入 list<自定義類>? 集合類型
"java_array"
"python_array"
"c++_array"
"java_list"
"python_list"
"c++_list"
"set java"
"set python"
"set c++"
外部bean
一個service類中要調用dao類,可以把dao類看做是service類的一個屬性,當做屬性來 聲明 和 注入
public class Studentservice {
Studentdao studentdao =new Studentdaoimpl();
//set方法是為了在配置文件中生成service類時可以給這個屬性賦值
public void setBooks(Books books2) {
this.books=books2;
}
return studentdao;
}
?外部類指的是我在service類聲明的外面 , 聲明dao 類 ,然后在service類中引用dao類
這種寫法是一樣的,暫時未發現不同
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("demo1.xml");
//第一個參數是xml文件中該類對應的bean 的 id值
Studentservice studentservice =(Studentservice) applicationContext.getBean("service" ,Studentservice.class);
studentservice.print2();
}
?內部bean
在外部類里面聲明內部的類 ,(可能沒說清楚,看下面代碼)?,
student里面聲明department類, department里面有個屬性 d_id,也給這個屬性賦值
?student類
package com.testdemo2;
public class Student {
public int id;
public Department department;//這里就表示一對一的關系,一個學生要對應一個部門
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}
department類?
package com.testdemo2;
public class Department {
public int d_id;
public int getD_id() {
return d_id;
}
public void setD_id(int d_id) {
this.d_id = d_id;
}
}
?級聯賦值
在配置外部bean之后,可以name="department.d_id"? 來直接配置 department對象中的d_id屬性,注意department對象中一定要寫 d_id的get方法
(在聲明department對象的時候就可以給d_id屬性賦值(比如下面,賦值d_id為10),為什么要用級聯賦值呢)
通過下面的方式 ,可以讓不同的類共享同一個list集合(注意,開頭的引用中增加了東西)
java從入門到精通
python從入門到精通
php從入門到精通
原文鏈接:https://blog.csdn.net/sharesb/article/details/123436530
相關推薦
- 2022-09-10 親自教你在netty中使用TCP協議請求DNS服務器的詳細過程_服務器其它
- 2023-11-23 python怎么判斷電腦環境是32位還是64位
- 2022-05-12 C++線程安全的隊列你了解嘛_C 語言
- 2022-10-19 報錯No?module?named?numpy問題的解決辦法_python
- 2022-11-16 python?sklearn與pandas實現缺失值數據預處理流程詳解_python
- 2022-12-02 基于Go語言實現類似tree命令的小程序_Golang
- 2022-11-12 Python?Multinomial?Naive?Bayes多項貝葉斯模型實現原理介紹_python
- 2022-03-16 .NET6自定義WebAPI過濾器_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支