Spring Ioc

一 环境搭建:

1、spring依赖库


 * SPRING_HOME/dist/spring.jar
 * SPRING_HOME/lib/jakarta-commons/commons-logging.jar
 * SPRING_HOME/lib/log4j/log4j-1.2.14.jar

 

2 配置文件:

 

applicationContext.xml log4j.properties

3 spring Ioc容器的关键点:


 * 必须将被管理的对象定义到spring配置文件中,让spring管理我们的对象创建和依赖,必须在spring配置中进行定义
 * 必须定义构造函数或setter方法,让spring将对象注入过来

 

二 普通属性注入和依赖对象注入:

 

<bean id="bean1" class="com.bjsxt.spring.Bean1">

 <property name="strValue" value="Hello"/>

<!-- <property name="intValue" value="123"/> -->

<property name="intValue"> <value>123</value> </property>

 <property name="listValue">

<list>

<value>list1</value>

<value>list2</value>

</list>

</property>

<property name="setValue">

<set>

 <value>set1</value>

<value>set2</value>

</set>

</property>

<property name="arrayValue">

<list>

<value>array1</value>

<value>array2</value>

</list>

</property>

<property name="mapValue">

<map>

<entry key="k1" value="v1"/>

<entry key="k2" value="v2"/>

</map>

</property>

<property name="dateValue">

<value>2008-08-15</value>

</property>

</bean>

 

依赖对象的注入方式,可以采用:

 


* ref属性
 * <ref>标签
 * 内部<bean>来定义

  

 

如何将公共的注入定义描述出来?


 * 通过<bean>标签定义公共的属性,指定abstract=true
 * 具有相同属性的类在<bean>标签中指定其parent属性

 

<bean id="beanAbstract" abstract="true">

<property name="id" value="1000"/>

<property name="name" value="Jack"/>

</bean>

<bean id="bean3" class="com.bjsxt.spring.Bean3" parent="beanAbstract">

<property name="name" value="Tom"/>

<property name="password" value="123"/>

</bean>

 

 

 

可以将 applicationContext.xml 分解为多个文件,采用 CalssPathXmlApplicationContext(String[] configLocations);  同时configlocations 也可以采用*context.xml 类似格式。

 

三 什么是属性编辑器,作用?


 * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入
 spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器
 
 如何定义属性编辑器?


  * 继承PropertyEditorSupport类,覆写setAsText()方法,参见:UtilDatePropertyEditor.java
  * 将属性编辑器注册到spring中,参见:applicationContext-editor.xml
  

<!-- 定义属性编辑器 -->

<bean id="customEditorConfigurer" lass="org.springframework.beans.factory.config.CustomEditorConfigurer">

 

<property name="customEditors">

<map>

<entry key="java.util.Date">

<bean class="com.bjsxt.spring.UtilDatePropertyEditor">

<property name="format" value="yyyy-MM-dd"/>

</bean>

</entry>

</map>

</property>

</bean>

 

四  scope可以取值:

 
 * singleton:每次调用getBean的时候返回相同的实例
 * prototype:每次调用getBean的时候返回不同的实例
 
五 自动装配:

    

1 根据名字自动装配

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           default-autowire="byName"
           >

 

2 根据类型自动装配(快速开发阶段采用)

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           default-autowire="byType"
           >

 

 


 

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值