学习Spring笔记四

CTF全能工具箱ProV2:集成AI与94GB离线资源库,打造无网环境下的智能解题流水线 CTF全能工具箱ProV2是一款专为线下CTF比赛设计的All-in-One离线解决方案。它集成了94GB的庞大离线资源库,涵盖Web、逆向、Pwn等全方向工具链与知识库,并创新性地内置了本地AI大模型,可在断网环境下提供智能解题辅助,实现从信息收集到漏洞利用的智能流水线作业,极大提升比赛效率。 阅读详情

一

注解

除了使用xml方式配置实现注入(管理对象和对象之间的关系)操作之外,还可以用Annotation来提高我们写代码的灵活性和效率。

annotation方式给我们提供了一个最重要的功能:扫描!component-scan(不扫描怎么知道你在哪个类加上了注解,提到注解就要想到扫描)


实例

1.Spring中要使用annotation,需要在配置文件中增加配置,如下是完整的applicationtext.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"
 xmlns:context="http://www.springframework.org/schema/context"  
 xsi:schemaLocation="http://www.springframework.org/schema/beans   
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
 http://www.springframework.org/schema/context   
 http://www.springframework.org/schema/context/spring-context-2.5.xsd"

 default-lazy-init="true" >

 
 <context:component-scan base-package="com.bjsxt"></context:component-scan>   <!-- context自动扫描com.bjsxt下的类 -->

<!--component-scan 组件扫描器,用了它后不用配置bean,spring会主动去搜索类,如果不用它,如果你写了类不配置bean,容器是找不到bean的,

          起到了简化配置文件的作用。但有一点,加了扫描器后,spring的启动会变慢,因为会先去扫描类,在项目启动的时候会把IOC容器创建好。

      有的项目启动得花一分钟,解决办法是在beans的开始标签中加 default-lazy-init="true",在用的时候再实例化类-->
 
</beans>


2.UserDao.java

@Component //把普通pojo实例化到IOC容器中,相当于在IOC容器中new的UserDao,和在xml中配置bean是一样的。

public class UserDao{

public UserDao(){

System.out.println("init.....");

}

public void add(){

System.out.println("add....");

}

}



3.UserAction.java

@Component //扫描的时候只会把这些带了注解的类扫描进来,加个括号是给它改名字,默认是以这个类名为名,@Component("ccc")

public class UserAction{

private UserDao userDao;


public UserDao getUserDao(){

return userDao;

}

@Resource(name="userDao")

public void setUserDao(UserDao userDao){

this.userDao = userDao;

}

public String add(){

userDao.add();

return null;

}

}


哪个类想进入IOC容器,只需要在它的类名上加@Component,然后在它要建立的关系的方法上写@Resource(name="userDao"),如果你用的是set注入,就在set方法上加,要是你用的是构造器注入,就在构造器上加,就这么简单。用Annotation创建IOC容器的对象的方法就这句话就全讲明白了!


4.接下来测试

Test.java

public class Test{

public static void main(String[] args){

ApplicationContext ac = new ClassPathXmlApplicationContext(

new String[ ]{"ApplicatioinContext.xml"}

);

UserDao userDao = (UserDao) ac.getBean("userDao");   //虽然在xml中没有配置它,但是注解配置了,所以用getBean也是可以获取的。

}

}

执行下看能不能打印初始化中的init

—————————注解 end—————————————————————

IOC讲完啦,就这么简单,管理对象,new一下,给它赋值,建立关联。够了!


*******题外********

对象和对象之间的关系包括:
依赖:对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其它对象的调用关系
关联:对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。
聚合:表示has-a的关系,是一种不稳定的包含关系。聚合类不必对被聚合类负责。使用集合属性表达

********************************************************




二

AOP面向切面编程 

核心思想是:弹性的设计,利用动态代理的底层实现,为层与层之间,动态植入代码。层和层之间有很多的调用关系。我们往里面植入代码,影响的是层和层之间的交流。

AOP是代码重用的最佳案例。真正达到了写一次用多次的效果。而且是可挺拔式的、插件式的。以前写程序时是要写个功能,需要到多个类里面去修改,删除时也要改动多个类。有了AOP就不用啦。为避免这种情况,AOP是现在大型项目中必备的。


AOP主要应用于日志记录,性能统计,安全控制,事务处理等方面。AOP不是实现小功能的,它是用于实现公共设计代码,如权限、系统日志记录、安全控制、事务的管理。新手一般接触不到这方面的实现,或者是人家已经实现好了。AOP并不适合单一功能,所以叫面向切面编程。


一个请求来到服务器,会创建一个线程。这个线程会执行很多的方法,整个项目是由很多线程组成的。AOP是从业务流切入,加入功能,和代理很像。


【SAP-MDG】工作流任务配置实战:从基础配置到代理分配详解 本文详细解析了SAP MDG工作流任务配置的全流程,从基础配置到代理分配的关键操作。通过实战案例和最佳实践,帮助用户掌握Configure Workflow Tasks的核心技巧,包括环境检查、代理分配、SWDD事务码使用及常见问题排查,提升主数据管理效率。 阅读详情

相关推荐

新手DIY无人机,从电机到飞控,这份配件清单和避坑指南请收好

本文为无人机DIY新手提供从电机到飞控的完整配件清单和避坑指南。详细解析电机KV值选择、电调匹配、飞控系统调试等核心问题,帮助初学者避开常见雷区,顺利完成首飞。特别推荐FPV竞速机和航拍机的配件组合方案,并附赠实用调试命令和故障排查表。

weixin_27032989的博客 233

Spring学习笔记四

Spring学习笔记四注解@Component@Repository @Service @Controller注解 @Resource@注解@AutoWired Annotation注解是JDK1.5以后引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时的检查。注解是以 @注解名 在代码中存在的。 注解@Component 创建Person2 public class Pers...

人在囧途的博客 143

AWS RDS 介绍 三)创建 RDS 实例

AWS RDS 介绍 共分为 7 个部分, 其中 第 3部分重点介绍,如何创建一个RDS 实例。 三) AWS RDS 试用MySQL http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.

XuYongshi02的专栏 7645

spring学习笔记四

spring的配置 4.1、别名 在beans中使用alias <alias name="user" alias="user2"/> 我们使用了别名之后,别名也可以当做是我们的bean的id一样使用 4.2Bean配置 <!-- id: bean的唯一标识符 class:bean对象所对应的全限定名,:包名+类名 name:和前面的alias一样,可以写多个,逗号分隔/空格/分号也可以 --> <bean id="user" class="com.yu.poj

yuyuyu_623的博客 195

AI 模型训练核心方法论:零基础也能落地的 8 个关键阶段

本文是为 AI 零基础学习者打造的模型训练入门指南,以生活化语言拆解核心概念,规避专业术语壁垒。内容先通俗阐释模型训练、监督学习、数据集划分等基础概念,再按问题定义、数据准备、模型选择、环境搭建、训练、评估、调参、部署 8 个阶段,拆解完整训练流程,搭配 PyTorch 代码示例与实战案例,同时提供资源预算、常见问题解决方案及学习路径。指南强调数据的核心重要性,推荐新手优先使用迁移学习和免费 GPU 资源,兼顾理论与实操,帮助学习者快速上手,避开训练误区,独立完成从模型搭建到部署的全流程。

weixin_52741870的博客 468

使用KITTI数据集测试不同算法的性能

该文章将使用同一个kitti数据集来测试不同算法的性能,目前已经测试的算法包括:LIO-SAM,FAST-LIO2,Point-LIO,Faster-LIO。

wwtx的博客 2586

【Spring学习笔记四】

1.整个Spring5框架的代码基于java8,运行时兼容jdk9,许多不建议的类和方法在代码库中删除2.Spring5框架自带了通用的日志封装(1)Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2(2)Spring5 框架整合 Log4j23.Spring5注解(1)@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以为空,参数值可以为空(2)注解用在方法上面,方法返回值可以为空。

hongjianxiang的博客 129

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图)

本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。

weixin_29305337的博客 737

Spring Authorization Server 学习笔记(四)

Spring Authorization Server 核心组件 (2) - Registered Client

qq_36427638的博客 975

图形化界面无限转圈?CentOS 7的SELinux避坑指南(附命令行修复实录)

本文详细解析了CentOS 7图形界面启动时无限转圈或卡在'starting switch root'的故障原因,主要与SELinux安全策略冲突有关。提供了三种修复方案:临时禁用SELinux、重装策略包和精细调整策略,并分享了长期维护建议,帮助用户平衡系统安全性与可用性。

potato的博客 797

【人工智能之深度学习】21. 自动驾驶感知实战:YOLOv4复杂天气优化方案(BDD100K全代码+效果对比)

摘要:自动驾驶摄像头在雨雾天气下易受图像模糊、目标遮挡影响,导致YOLOv4检测精度骤降。本文基于BDD100K公开数据集(含多天气场景),设计三阶段优化方案:1)物理建模生成雨雾效果(雨滴线条+大气散射模型),将恶劣天气样本占比从20%提升至40%;2)在YOLOv4颈部嵌入CBAM注意力机制,强化模糊区域特征提取;3)L1剪枝(30%)+TensorRT量化实现轻量化。需特别说明:本文为教学虚拟案例,不可直接用于车载部署,实际落地需结合多传感器融合与ISO 26262认证。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1681

Spring 学习总结笔记【四、整合Junit】

spring整合Junit

qq_51938362的博客 439

【CAN总线测试】——使用VH6501 进行Busoff快慢恢复测试

即在IDBase中填标准帧11位二进制ID,如果不满11位,高位补零,凑齐11位,并将下方CurrTriggerField设置干扰前一位AckSlot位,Triggeroffset设置为0。首先确认环境支持VN6501,6501硬件连接成功后,工程的小闪电是正常黄色状态,若是灰色证明缺少License,或者软件安装环境不正确。填写干扰报文ID、干扰位置 注意这里的干扰位置是实际干扰的前一位,TriggerOffset表示偏移量,可以干扰某个字节的具体位.找到并打开Panel后,开启工程,并且配置面板。

LOVE135149的博客 5628

Spring学习笔记(四)

Spring学习笔记(四) ​ 今天的主要学习内容是通过aop实现Spring的自动事务配置。但Spring的自动事务配置需要使用JdbcTemplate进行持久层编写来配合使用。所以今日的学习内容主要分为了解JdbcTemplated的使用与掌握Spring自动事务配置 一、JdbdTemplate ​ **1.概述 ** ​ JdbcTemplate是Spring框架提供的一个对象,是...

weixin_44580146的博客 229

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

spring mvc源码学习笔记之四

src/main/webapp/WEB-INF/web.xml 内容如下 src/main/webapp/WEB-INF/app-context.xml 的内容如下 src/main/webapp/WEB-INF/qs-servlet.xml 的内容如下 com.qs.demo.root.PeopleService 的内容如下 com.qs.demo.sub.PeopleController 的内容如下 以上就是全部代码 写这个例子主要是为了看父子容器这个事儿。 上面的例子可以分

杂货铺的小掌柜 1090

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【 从零到精通Spring学习笔记(四)集合注入】

Spring笔记(四) 4.集合注入 4.1数组注入 4.2List注入 4.3Set注入 4.4Map注入 4.5Preperties注入 4.6总结

2402_88700528的博客 720

Spring Boot实战学习笔记(四)

摘要本文为学习Java EE开发的颠覆者 Spring Boot实战的学习笔记,学习了一遍,但是好记性不如烂笔头,所以文章记录下来。图书购买地址为: https://item.jd.com/11894632.html.Spring Boot实战学习笔记1Spring Boot实战学习笔记2Spring Boot实战学习笔记3Spring Boot实战学习笔记4Spring Boot实战学习笔记5S...

殘遛的博客 612

【Spring学习笔记四】使用Spring整合jdbc

使用Spring整合JDBC的目的就是在Spring的环境下能够操作数据库。 记住:Spring始终是一个容器,所以spring整合JDBC实际上就是spring容器提供了一个可以操作数据库的对象,对象封装了jdbc技术。我们主要就是学习这个对象。而这个对象叫做JDBCTemplate,翻译过来就是JDBC模板。 JDBCTemplate对象与DbUtils中的QueryRunner对象非常相

public_TIM的博客 492

Spring Boot学习笔记总结(四)

1. Web请求参数处理 Rest映射源码解析 1.1 OrderedHiddenHttpMethodFilter对象原理 1.2 表单提交要使用Rest的使用 1.3 Rest使用客户端工具发送不同类型的请求 1.4 如何改变默认的_method? 2. Web请求参数处理 请求映射原理 3. 请求处理常用的参数注解 3.1 SpringMvc常用的一些注解 3.2 SpringBoot的矩阵变量 和 UrlPathHelper类 4. 请求参数处理 类型参数的解析原理 4.1 找到合适的HandlerA

探索技术与实践的旅程,分享编程经验与工具使用心得,助力开发者提升技能。 2108

Spring学习笔记(四)

史上最全的Spring学习笔记,手把手教你学会Spring。Spring事务讲解、Spring基于xml的事务配置实现转账业务测试、Spring基于注解的事务配置实现转账业务测试、Spring整合Mybatis实现用户的增删改查......

m0_67226963的博客 413

Spring5 学习笔记 四 、AOP

(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 (2)通俗描述:**不通过修改源代码方式,在主干功能里面添加新功能** 功能模块可插入可拔出

weixin_46703850的博客 657

Spring學習筆記DEMO代碼(四)

Spring學習筆記DEMO代碼 不包含JAR包

Z_Z.W's HOME 119
上一篇: 学习Spring笔记三
下一篇: 学习SpringMVC笔记(全)
CodingAlarm
博客等级 码龄12年 28粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值