Spring-02注解使用DI

本文详细介绍了在Spring框架中使用注解进行配置的方法,包括AOP Jar包的导入、配置文件的约束添加、组件扫描器的声明,以及@Component、@Repository、@Service、@Controller等注解的应用。同时,探讨了属性赋值、自动注入和资源注入的实现方式。

1(1)导入 AOP 的 Jar 包。因为注解的后台实现用到了 AOP 编程。
( 2 )需要更换配置文件头,即添加相应的约束。
约 束 在 %SPRING_HOME%\docs\spring-framework-reference\html\xsd-configuration.html
文件中。
( 3 )需要在 Spring 配置文件中配置组件扫描器,用于在指定的基本包中扫描注解。
在这里插入图片描述
声明组件扫描器:指定注解所在的包名, 让框架找到注解的位置
base-package:注解所在的包名,框架会扫描这个包和子包中的类,
按照类中的注解创建对象,给属性赋值。

指定多个包
第一种方式:使用多次component-scan
<context:component-scan base-package=“com.bjpowernode.ba01” />
<context:component-scan base-package=“com.bjpowernode.ba02” />

第二种方式,使用分隔符( ;或者,)指定多个包
<context:component-scan base-package=“com.bjpowernode.ba01;com.bjpowernode.ba02” />

第三种方式,指定父包
<context:component-scan base-package=“com.bjpowernode” />

注解使用 1:

/**
 * @Component:创建java类的对象,等同于<bean>,默认是单例对象
 *      属性:value ,表示对象的名称, 等同于 <bean>的id属性
 *      位置:在类定义的上面
 * @Component(value="myStudent")等价于
 * <bean id="myStudent" class="com.bjpowernode.ba01.Student"/>
 * 
 * 和@Component功能相同的其他注解,这些注解还有其他的含义。
 * 1.@Repository:放在Dao层的实现类上面,表示创建Dao对象,完成数据库操作的。
 * 2.@Service:放在业务层的实现类上面,表示创建Service对象,处理业务逻辑的。
 * 3.@Controller:放在处理器类的上面,创建处理器对象,这种对象可以接受请求,响应处理结果的。
 * 
 *  @Repository, @Service,@Controller相当于是继承@Component .  
 *  @Repository, @Service,@Controller是用来给对象分层的:
 *   持久层                 业务层           控制层
 * 
 */
//使用value指定对象的名称
//@Component(value="myStudent")

//省略value属性
@Component("myStudent")

//不指定对象的名称,由框架提供默认名称:类名的首字母小写的值
//@Component
public class Student {

/**
	 * 简单类型的属性赋值:
	 * @Value:简单类型的属性赋值
	 *    属性:value,简单类型的属性值
	 *    位置:
	 *     1.在属性定义的上面,推荐使用,无需set方法
	 *     2.在set方法的上面
	 */
	@Value(value="张三")
	private String name;

/**
	 * 引用类型  byType类型
	 * @Autowired: 是spring框架提供的,给引用类型赋值, 使用自动注入的原理。
	 *             支持byName, byType
	 *       位置:
	 *         1.在属性定义的上面,无需set方法,推荐使用
	 *         2.在set方法的上面
	 * @Autowired默认是byType原则
	 */
	//byType
	@Autowired
	private School school;



/**
	 * 引用类型  byName 类型
	 * @Autowired: 是spring框架提供的,给引用类型赋值, 使用自动注入的原理。
	 *             支持byName, byType
	 *  属性:required 是boolean类型的,默认是true
	 *         true:表示引用类型必须赋值成功,否则程序报错,并终止执行。
	 *         false: 引用类型赋值失败,程序不报错,引用类型是null
	 *       位置:
	 *         1.在属性定义的上面,无需set方法,推荐使用
	 *         2.在set方法的上面
	 * @Autowired使用byName需要使用两个注解
	 * 1.@Autowired给引用类型赋值
	 * 2.@Qualifier:指定对象的名称
	 *       属性: value 对象的名称(bean的id)
	 */
	//byName
	@Autowired(required=false)
	@Qualifier("mySchool")
	private School school;

/**
	 * 引用类型
	 * @Resource: 是jdk提供的注解,给引用类型赋值, 使用自动注入的原理。 spring框架提供了对\
	 * @Resource功能的支持
	 *             可以在spring项目中,使用@Resource
	 *      位置:
	 *        1.在属性定义的上面,推荐使用,无需set方法
	 *        2.在set方法的上面       
	 *      
	 */
	//默认是byName, 赋值先使用byName,如果byName失败再使用byType, 所以当前例子
	用的是byType赋值成功
	@Resource
	private School school;
	}



//只用byName , 需要给@Resource增加一个属性 name , 指定对象的名称
	@Resource(name="mySchool")
	private School school;
基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值