首页
友链
Search
1
01-快捷命令
162 阅读
2
寒假计划
146 阅读
3
浏览器规范(ES module)和 node.js 规范(Common JS)
143 阅读
4
03-概念解析
140 阅读
5
学期计划(大三下学期)
139 阅读
计划
算法
面试题
运维
Ansible
Linux
数据库
neo4j
共用
web 前端
CSS
JavaScript
Vue
Node.js
英语单词
工程化
JAVA
mysql
收获
面试
mybatis
Spring
基础
spring-mvc
问题
项目
宠物乐园
速查
问题集
git
学习
sql
二阶段
登录
Search
标签搜索
spring
mysql
vue
ansible
CSS
面试
计划
收获
JAVA面试题
spring-mvc
Starrylsi
累计撰写
106
篇文章
累计收到
55
条评论
首页
栏目
计划
算法
面试题
运维
Ansible
Linux
数据库
neo4j
共用
web 前端
CSS
JavaScript
Vue
Node.js
英语单词
工程化
JAVA
mysql
收获
面试
mybatis
Spring
基础
spring-mvc
问题
项目
宠物乐园
速查
问题集
git
学习
sql
二阶段
页面
友链
搜索到
14
篇与
的结果
2024-09-11
04-Spring-IOC-基于xml配置文件的自动注入
关键: 在bean标签中的 autowire属性中设置四种装配方式的一种值掌握: 了解每一个装配方式是什么意思public class Car { private int id; private String name; public class Person { private Car car; public Person(Car car) { this.car = car; }<bean id="car" class="top.starrylsi.pojo.Car"> <property name="id" value="1" /> <property name="name" value="宝马1" /> </bean> <bean id="car1" class="top.starrylsi.pojo.Car"> <property name="id" value="2" /> <property name="name" value="宝马2" /> </bean><!-- autowire 设置自动装配的方式 default 和 no 一样,都表示不装配, 如果对象不你手动设置,就没有值。 byName 表示Spring容器会自动按照子对象的属性名,当成是id来查找对象。 找到就注入,找不到就为null 举例:private Car car; 就会以car做为id去spring容器中去查找对象。找到就把值注入给属性car。 byType 表示Spring容器会自动的按照子对象的类型去查找bean对象注入。 举例:private Car car; Spring容器就会自动的按照Car.class类型去Spring容器中查找。 如果说,找到一个,就注入 如果没有找到,值就为null 如果说,找到多个,就报错。 constructor 表示Spring容器会按照子对象的类型去查找构造方法,中参数需要的类型去注入。 先按照类型查询,如果找到一个就注入。 如果找到多个,再按照构造方法中参数的变量名做为id来查找,如果找到就注入。如果没有找到,就为null 如果没有找到,值也为null --> <bean id="p22" class="top.starrylsi.pojo.Person" autowire="constructor"> <property name="id" value="1"/> <property name="name" value="华仔"/> <property name="age" value="18"/> <property name="phone" value="18699998888"/> </bean>
2024年09月11日
11 阅读
0 评论
0 点赞
2024-09-11
03-Spring-IOC-Bean的四种模式
目标: 四种模式只需要了解单例模式即可,其他的都是不常用<!-- scope 属性设置范围 singleton 默认情况 是singleton,表示Spring容器中只有一个单例 单例是在Spring容器创建的时候。初始化所有单例Bean对象 并且每次调用Bean对象的时候,原来原来Spring容器中的对象 prototype prototype是表示当前配置的Bean对象是多例。 在Spring容器被创建的时候,bean不会被创建出来。 并且每次调用getBean方法都会创建一个对象实例 request 表示一次请求内,不管调用几次getBean方法,返回的都是同一个bean对象 Object bean = request.getAttribute(xxx); if (bean == null) { bean = 创建一个 request.setAttribute(xxx,bean); } session 表示一个Session对象内,不管调用几次getBean方法,返回的都同一个Bean对象 Object bean = session.getAttribute(xxx); if (bean == null) { bean = 创建一个 session.setAttribute(xxx,bean); } --> <bean id="p21" class="com.zhuama.pojo.Person" scope="prototype"> <property name="id" value="1"/> <property name="name" value="华仔"/> <property name="age" value="18"/> <property name="phone" value="18699998888"/> </bean>
2024年09月11日
12 阅读
0 评论
0 点赞
2024-09-11
02-Spring-Ioc-Bean的依赖关系
原理: 查询依赖关系,先创建顶层依赖然后向下依次创建关键: 使用depends-on属性掌握: 需要掌握 通过三个类A,B,C来理解依赖关系<?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"> <!-- depends-on="b" 如果要创建a对象,就要有b对象 也就是要先创建b再创建a --> <bean id="a" class="com.zhuama.pojo.A" depends-on="b"></bean> <bean id="b" class="com.zhuama.pojo.B"></bean> <bean id="c" class="com.zhuama.pojo.C"></bean> </beans>测试的代码: @Test public void test20() throws Exception { // 默认情况下。在Application.xml中配置的bean对象。默认在创建Spring容器的时候都会创建, // 而且创建的顺序是在配置文件中从上到下的顺序。 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application2.xml");
2024年09月11日
11 阅读
0 评论
0 点赞
2024-09-10
01-spring-依赖注入,控制反转
目标: 理解Spring IOC,DI注: 面向有开发经验的,小白应该看不懂错误: JUnit版本与语句不对应导致代码正确,运行错误{dotted startColor="#6bfffd" endColor="#1989fa"/}知识点控制反转:IOC——Inversion of Control,指的是将对象的创建权交给Spring去创建。使用Spring之前,对象的创建都是由我们自己在代码中new创建。而使用Spring之后。对象的创建都是由给了Spring框架。依赖注入:DI——Dependency Injection,是指依赖的对象不需要手动调用setXX方法去设置,而是通过配置赋值。简单案例目标: 通过实操person对象理解Spring的自动注入注: 代码是参考,不是全部实现private int id; private String name; private String phone; private int age;<!-- spring ioc配置对象 --> <bean id="p1" class="top.starrylsi.pojo.Person"> <!-- 注入属性 --> <property name="id" value="1001" /> <property name="name" value="azrail" /> <property name="age" value="23" /> <property name="phone" value="18310720233" /> </bean> @Test public void testIOC() { //1.获取spring容器对象 ApplicationContext application = new ClassPathXmlApplicationContext("classpath:spring.xml"); // ApplicationContext application = new FileSystemXmlApplicationContext("config/spring.xml"); //2.spring容器获取对象 Person person = (Person) application.getBean("p1"); Person person1 = (Person) application.getBean("p1"); Person person2 = (Person) application.getBean("p1"); //3.显示内容 System.out.println(person); System.out.println(person1); System.out.println(person2); ((ClassPathXmlApplicationContext)application).close(); } /* * 通过类型寻找bean对象 如果spring容器中含有多个 则报错 * 只有一个则返回 * * */ 1.1 命名空间p操作参数注: 需要通过命名空间中勾选 p,然后生成到xml中,才可以使用<!-- 命名空间p 用于操作参数 --> <bean id="p4" class="top.Starrylsi.pojo.Person" p:id="1004" p:name="test03" p:age="18" p:phone="19111112222" /> 1.2 Person对象包含Car对象(IOC之子对象的赋值)分析: 有两种方法可以实现内部创建bean引用外部bean常见错误:内部的Bean不能被外部使用public class Car { private int id; private String name; public class Person { private int id; private String name; private String phone; private int age; private Car car; <!-- 先创建一个内部对象 --> <bean id="c1" class="com.zhuama.pojo.Car"> <property name="id" value="10001" /> <property name="name" value="麦昆" /> </bean> <!-- 1.创建一个person对象 包含car对象 --> <bean id="p5" class="com.zhuama.pojo.Person"> <property name="id" value="1005" /> <property name="name" value="test04" /> <property name="age" value="23" /> <property name="phone" value="18312345678" /> <!-- 引用其他的bean 注:内部创建的bean不能被其他bean引用--> <property name="car" ref="c1" /> </bean> <!-- 2.创建一个person对象 包含car对象 --> <bean id="p6" class="com.zhuama.pojo.Person"> <property name="id" value="1006" /> <property name="name" value="test05" /> <property name="age" value="23" /> <property name="phone" value="18312345678" /> <!-- 创建内部bean --> <property name="car"> <bean id="innerCar" class="com.zhuama.pojo.Car"> <property name="id" value="10002" /> <property name="name" value="马自达" /> </bean> </property> </bean> 1.3 list map properties(了解即可)private List<Integer> list; private Map<String,Object> map; private Properties prop;<!-- bean中含有集合类型 --> <bean id="p7" class="com.zhuama.pojo.Person"> <property name="id" value="1007" /> <!-- 如果属性是list类型 --> <property name="list"> <list> <value>1</value> <value>2</value> <value>3</value> </list> </property> <!-- 如果属性是map类型 --> <property name="map"> <map> <entry key="key1" value="value1" /> <entry key="key2" value="value2" /> <entry key="key3" value="value3" /> </map> </property> <!-- 如果属性是properties类型 --> <property name="prop"> <props> <prop key="driverClassName">com.mysql.driver.Driver</prop> <prop key="url">jdbc:mysql://localhost:3306/test</prop> <prop key="username">root</prop> <prop key="password">123</prop> </props> </property> </bean> 1.4 IOC之级联属性赋值<bean id="p13" class="com.zhuama.pojo.Person"> <property name="name" value="这是12个Person" /> <!-- 先赋值 --> <property name="car" ref="car1"></property> <!-- 再级联修改属性 --> <property name="car.id" value="2" /> <property name="car.name" value="级联属性赋值" /> </bean> 1.5 下面是不常用,仅了解即可IOC之静态工厂方法创建BeanIOC之工厂实例方法创建BeanIOC之FactoryBean接口方式创建对象IOC之继承Bean配置
2024年09月10日
11 阅读
0 评论
0 点赞
1
2
3