spring簡單項目實戰

項目路徑?

models

package com.qcby.demo1;import com.qcby.service.UserService;
import com.qcby.service.UserServiceImpl;public class Dfactory {public UserService createUs(){System.out.println("實例化工廠的方式...");return new UserServiceImpl();}
}
package com.qcby.demo1;
import com.qcby.service.UserService;
import com.qcby.service.UserServiceImpl;
/*** 靜態工廠方法模式**/
public class StaticFactory {public static UserService createUs(){System.out.println("通過靜態工廠的方式創建 UserServiceImpl 對象...");// 編寫很多業務邏輯 權限校驗return new UserServiceImpl();}}
package com.qcby.demo2;public class Car {// 名稱private String cname;// 金額private Double money;public Car(String cname, Double money) {this.cname = cname;this.money = money;}public Car() {}@Overridepublic String toString() {return "Car{" +"cname='" + cname + '\'' +", money=" + money +'}';}
}
package com.qcby.demo3;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
public class CollectionBean {//數組private String[] strs;private List<String> list;private Map<String,String> map;private Properties properties;public String[] getStrs() {return strs;}public void setStrs(String[] strs) {this.strs = strs;}public List<String> getList() {return list;}public void setList(List<String> list) {this.list = list;}public Map<String, String> getMap() {return map;}public void setMap(Map<String, String> map) {this.map = map;}public Properties getProperties() {return properties;}public void setProperties(Properties properties) {this.properties = properties;}@Overridepublic String toString() {return "CollectionBean{" +"strs=" + Arrays.toString(strs) +", list=" + list +", map=" + map +", properties=" + properties +'}';}
}

serviecs

package com.qcby.service;public interface UserService {public void hello();
}
package com.qcby.service;public class UserServiceImpl implements UserService{@Overridepublic void hello() {System.out.println("Hello IOC!!");}
}

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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--IOC 管理 bean--><bean id="userService" class="com.qcby.service.UserServiceImpl"/><!--實例化 Bean 對象的三種方式--><!--默認是無參數的構造方法(默認方式,基本上使用)-->
<!--    <bean id="us" class="com.qcby.service.UserServiceImpl" />-->
<!--    &lt;!&ndash; 靜態工廠方式&ndash;&gt;-->
<!--    <bean id="us" class="com.qcby.demo1.StaticFactory" factory-method="createUs" />-->
<!--    &lt;!&ndash; 動態工廠方式&ndash;&gt;-->
<!--    <bean id="dfactory" class="com.qcby.demo1.Dfactory" />-->
<!--    <bean id="us" factory-bean="dfactory" factory-method="createUs" />--><!--DI:依賴注入--><!--屬性set方法注入值-->
<!--    <bean id="os" class="com.qcby.service.OrderServiceImpl">-->
<!--        <property name="orderDao" ref="od" />-->
<!--        <property name="msg" value="你好" />-->
<!--        <property name="age" value="30" />-->
<!--    </bean>-->
<!--    <bean id="od" class="com.qcby.dao.OrderDaoImpl"></bean>--><!-- 屬性構造方法方式注入--><bean id="car" class="com.qcby.demo2.Car"><constructor-arg name="cname" value="大奔" /><constructor-arg name="money" value="400000" /></bean><!-- 數組,集合(List,Set,Map),Properties等的注入--><!--給集合屬性注入值--><bean id="collectionBean" class="com.qcby.demo3.CollectionBean"><property name="strs"><!--數組注入--><array><value>張三</value><value>李四</value><value>王五</value></array></property><property name="list"><!--List注入--><list><value>熊大</value><value>熊二</value><value>光頭強</value></list></property><property name="map"><!--Map注入--><map><entry key="1" value="張三" /><entry key="2" value="李四" /><entry key="3" value="王五" /></map></property><property name="properties"><!--Properties注入--><props><prop key="username">root</prop><prop key="password">123456</prop></props></property></bean><!-- 主配置文件中包含其他的配置文件:--><import resource="applicationContext2.xml"/><!--    工廠創建的時候直接加載多個配置文件:ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");-->
</beans>

log4j.properties(自己添加到resource下)

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

test

import com.qcby.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Demo1 {@Testpublic  void run1(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserService userService = (UserService) context.getBean("userService");userService.hello();}
}
import com.qcby.demo3.CollectionBean;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Demo3 {@Testpublic void run3(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");CollectionBean collectionBean = (CollectionBean) context.getBean("collectionBean");collectionBean.getList().forEach(System.out::println);collectionBean.getMap().forEach((k,v)->System.out.println(k+"--"+v));collectionBean.getProperties().forEach((k,v)->System.out.println(k+"--"+v));System.out.println(collectionBean.getStrs());}}

運行結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92149.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92149.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92149.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ServBay for Windows 1.4.0 發布:新增MySQL、PostgreSQL等數據庫自定義配置

各位 Windows 平臺的開發者們&#xff0c; ServBay 始終致力于為您打造一個強大、高效且靈活的本地開發環境。距離上次更新僅過去短短一周&#xff0c;經過我們技術團隊的快速開發&#xff0c;我們正式推出了 ServBay for Windows 1.4.0 版本。 專業開發者不僅需要一個能用的環…

python網絡爬蟲小項目(爬取評論)超級簡單

python網絡爬蟲小項目&#xff08;爬取評論&#xff09;超級簡單 學習python網絡爬蟲的完整路徑&#xff1a; &#xff08;第一章&#xff09; python網絡爬蟲(第一章/共三章&#xff1a;網絡爬蟲庫、robots.txt規則&#xff08;防止犯法&#xff09;、查看獲取網頁源代碼)-…

本周大模型新動向:獎勵引導、多模態代理、鏈式思考推理

點擊藍字關注我們AI TIME歡迎每一位AI愛好者的加入&#xff01;01Iterative Distillation for Reward-Guided Fine-Tuning of Diffusion Models in Biomolecular Design本文提出了一種用于生物分子設計中獎勵引導生成的擴散模型微調框架。擴散模型在建模復雜、高維數據分布方面…

JAVA+AI教程-第三天

我將由簡入繁&#xff0c;由零基礎到詳細跟大家一起學習java---------------------------------------------------------------------01、程序流程控制&#xff1a;今日課程介紹02、程序流程控制&#xff1a;if分支結構if分支有三種形式&#xff0c;執行順序就是先執行if&…

自定義命令行解釋器shell

目錄 一、模塊框架圖 二、實現目標 三、實現原理 四、全局變量 五、環境變量函數 六、初始化環境變量表函數 七、輸出命令行提示符模塊 八、提取命令輸入模塊 九、填充命令行參數表模塊 十、檢測并處理內建命令模塊 十一、執行命令模塊 十二、源碼 一、模塊框架圖…

uniapp使用uni-ui怎么修改默認的css樣式比如多選框及樣式覆蓋小程序/安卓/ios兼容問題

修改 uni-ui 多選框 (uni-data-checkbox) 的默認樣式 在 uniapp 中使用 uni-ui 的 uni-data-checkbox 組件時&#xff0c;可以通過以下幾種方式修改其默認樣式&#xff1a; 方法一&#xff1a;使用深度選擇器格式一&#xff1a;在頁面的 style 部分使用深度選擇器 >>>…

《Linux 環境下 Nginx 多站點綜合實踐:域名解析、訪問控制與 HTTPS 加密部署》?

綜合練習:請給openlab搭建web網站&#xff0c;網站需求&#xff1a; 1.基于域名www.openlab.com可以訪問網站內容為 welcome to openlab!!&#xff0c; 2.給該公司創建三個子界面分別顯示學生信息&#xff0c;教學資料和繳費網站&#xff0c;基于www.openlab.com/student 網站訪…

網絡基礎1-11綜合實驗(eNSP):vlan/DHCP/Web/HTTP/動態PAT/靜態NAT

注&#xff1a;在華為模擬器&#xff08;eNSP&#xff09;上做的實驗其中&#xff0c;在內網實驗&#xff1a;Vlan/DHCP/VWeb/HTTP&#xff0c;在外網實驗&#xff1a;動態PAT/靜態NAT一、拓撲結構1. 核心設備與連接設備接口連接對象VLAN/IP角色LSW2/LSW3Ethernet 0/0/1-2PC1/P…

Mac上安裝Claude Code的步驟

以下是基于現有信息的簡明安裝指南&#xff0c;適用于macOS系統。請按照以下步驟操作&#xff1a; 前提條件 操作系統&#xff1a;macOS 10.15或更高版本。Node.js和npm&#xff1a;Claude Code基于Node.js&#xff0c;需安裝Node.js 18和npm。請檢查是否已安裝&#xff1a; …

MybatisPlus-15.擴展功能-邏輯刪除

一.邏輯刪除配置邏輯刪除的字段時&#xff0c;logic-delete-field字段配置的是邏輯刪除的實體字段名。字段類型可以是boolean和integer。在java中默認是boolean類型。邏輯已刪除值默認為1&#xff0c;而邏輯未刪除值默認為0。當是1時代表已刪除(1在數據庫表中為true&#xff0c…

IDEA 同時修改某個區域內所有相同變量名

在 IntelliJ IDEA 中&#xff0c;同時修改某個區域內所有 相同變量名 的快捷鍵是&#xff1a; ? Shift F6&#xff08;重命名變量&#xff09; 但這個快捷鍵默認是 全局重命名&#xff0c;如果你想 僅修改某個方法或代碼塊內的變量名&#xff0c;可以這樣做&#xff1a;&…

Telink BLE 低功耗學習

低功耗管理&#xff08;Low Power Management&#xff09;也可以稱為功耗管理&#xff08;Power Management&#xff09;&#xff0c;本?檔中會簡稱為PM。Telink低功耗解惑我查閱多連接SDK開發手冊時&#xff0c;低功耗管理章節看了兩三遍也沒太明白&#xff0c;有以下幾個問題…

設備管理系統(MMS)如何在工廠MOM功能設計和系統落地

一、核心系統功能模塊設備管理系統圍繞設備全生命周期管理設計&#xff0c;涵蓋基礎數據管理、設備運維全流程管控及統計分析功能&#xff0c;具體如下&#xff1a;基礎數據管理設備與備件臺賬&#xff1a;包含設備臺賬&#xff08;設備編號、識別碼、型號、生產日期等&#xf…

低空經濟展 | 牧羽天航空攜飛行重卡AT1300亮相2025深圳eVTOL展

為深入推動低空經濟產業高質量發展&#xff0c;構建全球eVTOL&#xff08;電動垂直起降飛行器&#xff09;產業交流合作高端平臺&#xff0c;2025深圳eVTOL展定于2025年9月23日至25日在深圳坪山燕子湖國際會展中心隆重舉辦。本屆展會以“低空經濟?eVTOL?航空應急救援?商載大…

CS231n-2017 Lecture4神經網絡筆記

神經網絡&#xff1a;我們之前的線性分類器可以接受輸入&#xff0c;進而給出評分&#xff0c;這是一種線性變換&#xff0c;再此基礎上&#xff0c;我們對這種線性變換結果進行非線性變換&#xff0c;并輸入到下一層線性分類器中&#xff0c;這個過程就像是人類大腦神經的運作…

暑期算法訓練.5

目錄 20. 力扣 34.在排序數組中查找元素的第一個位置和最后一個位置 20.1 題目解析&#xff1a; 20.2 算法思路&#xff1a; 20.3 代碼演示&#xff1a; ?編輯 20.4 總結反思&#xff1a; 21.力扣 69.x的平方根 21.1 題目解析&#xff1a; 21.2 算法思路&#xff1a;…

【HDLBits習題詳解 2】Circuit - Sequential Logic(5)Finite State Machines 更新中...

1. Fsm1&#xff08;Simple FSM 1 - asynchronous reset&#xff09;狀態機可分為兩類&#xff1a;&#xff08;1&#xff09;Mealy狀態機&#xff1a;輸出由當前狀態和輸入共同決定。輸入變化可能立即改變輸出。&#xff08;2&#xff09;Moore狀態機&#xff1a;輸出僅由當前…

多級緩存(億級流量緩存)

傳統緩存方案問題 多級緩存方案 流程 1.客戶端瀏覽器緩存頁面靜態資源; 2. 客戶端請求到Nginx反向代理;[一級緩存_瀏覽器緩存] 3.Nginx反向代理將請求分發到Nginx集群(OpenResty); 4.先重Nginx集群OpenResty中獲取Nginx本地緩存數據;[二級緩存_Nginx本地緩存] 5.若Nginx本地緩存…

淺談Rust語言特性

如大家所了解的&#xff0c;Rust是一種由Mozilla開發的系統編程語言&#xff0c;專注于內存安全、并發性和高性能&#xff0c;旨在替代C/C等傳統系統編程語言。Rust 有著非常優秀的特性&#xff0c;例如&#xff1a;可重用模塊 內存安全和保證&#xff08;安全的操作與不安全的…

React探索高性能Tree樹組件實現——react-window、react-vtree

&#x1f680; 簡介 在現代 Web 應用中&#xff0c;處理大量層級數據的樹形結構是一個常見挑戰。傳統的樹組件在面對成千上萬個節點時往往會出現性能瓶頸&#xff0c;導致頁面卡頓、內存占用過高等問題。本文將深入探討如何使用 react-window 和 react-vtree 構建高性能的虛擬…