当前位置: 首页 > news >正文

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.dtcms.com/a/290314.html

相关文章:

  • H3C技术考核
  • ACE 插入元件
  • SQL审计、Archery实战记录
  • 深入解析Hadoop YARN:三层调度模型与资源管理机制
  • [Python]函数调用链中局部变量的内存影响:通过memory_profiler分析
  • AR巡检和传统巡检的区别
  • 在 Angular 应用程序中使用 Genkit 的完整指南
  • 基于ArcFace损失函数训练的人脸特征提取模型
  • IDEA 同时修改某个区域内所有相同变量名
  • AR技术:应急响应的加速利器
  • AR技术:石化行业培训的“游戏规则改变者”
  • Swap Face 使用遇到的问题
  • 识别PDF中的二维码
  • ASP.NET Core Web API 中集成 DeveloperSharp.RabbitMQ
  • (二)Unity3d-ROS联合仿真:运行Unity-Robotics-Hub
  • java解析nc气象数据
  • HOT100——图篇Leetcode207. 课程表
  • Trae开发uni-app+Vue3+TS项目飘红踩坑
  • Cosmos
  • PostgreSQL 终端命令详解及实际应用案例
  • 【LINUX操作系统】搭建web网络服务器
  • Softhub软件下载站实战开发(二十):Docker部署全攻略
  • 前后端分离项目进阶1---前端
  • 对称加密技术详解:原理、算法与实际应用
  • 在本地WSL中的CentOS 7子系统中部署Ewomail邮件服务器
  • 面试150 全排列
  • Claude Code 启动提示 Note: Claude Code might not be available in your country. 解决
  • mac安装node的步骤
  • 线程池与ThreadPoolExecutor源码解析(上)
  • Consumer<T>