腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
java一日一条
专栏成员
举报
1064
文章
1034338
阅读量
83
订阅数
订阅专栏
申请加入专栏
全部文章(999+)
其他(591)
java(255)
编程算法(83)
数据库(75)
http(67)
存储(67)
缓存(52)
jvm(51)
sql(48)
安全(44)
api(41)
jdk(40)
开源(39)
go(38)
spring(31)
云数据库 SQL Server(28)
分布式(27)
git(25)
hashmap(25)
html(24)
linux(24)
ide(23)
数据结构(23)
python(22)
android(22)
游戏(19)
php(18)
面向对象编程(15)
xml(14)
oracle(14)
apache(14)
容器(14)
大数据(14)
ruby(12)
微信(12)
微服务(12)
node.js(11)
nat(11)
mvc(10)
tomcat(10)
windows(10)
jar(9)
ios(8)
云数据库 Redis(8)
maven(8)
网络安全(8)
aop(8)
数据挖掘(7)
servlet(7)
scala(7)
json(7)
mongodb(7)
自动化(7)
机器学习(6)
bootstrap(6)
eclipse(6)
移动开发(6)
运维(6)
shell(6)
jdbc(6)
tcp/ip(6)
kafka(6)
bash(5)
.net(5)
angularjs(5)
nosql(5)
黑客(5)
正则表达式(5)
gui(5)
dns(5)
数据处理(5)
perl(4)
jsp(4)
ajax(4)
容器镜像服务(4)
网站(4)
mybatis(4)
asp(4)
kernel(4)
https(4)
架构设计(4)
iphone(3)
react(3)
jquery(3)
汇编语言(3)
access(3)
django(3)
svn(3)
struts(3)
搜索引擎(3)
unix(3)
nginx(3)
深度学习(3)
文件存储(3)
企业(3)
express(3)
爬虫(3)
zookeeper(3)
二叉树(3)
flash(3)
gradle(3)
sas(3)
haskell(3)
Elasticsearch Service(3)
官方文档(2)
swift(2)
c 语言(2)
c++(2)
javascript(2)
lua(2)
memcached(2)
github(2)
腾讯云测试服务(2)
压力测试(2)
spark(2)
hadoop(2)
ssh(2)
erp(2)
npm(2)
grep(2)
单元测试(2)
rpc(2)
rabbitmq(2)
lamp(2)
数据分析(2)
物联网(2)
系统架构(2)
费用中心(1)
负载均衡(1)
比特币(1)
区块链(1)
数字货币(1)
NLP 服务(1)
自动驾驶(1)
phonegap(1)
xcode(1)
erlang(1)
vbscript(1)
单片机(1)
arm(1)
嵌入式(1)
postgresql(1)
打包(1)
matlab(1)
全文检索(1)
analyzer(1)
ubuntu(1)
负载均衡缓存(1)
bash 指令(1)
apt-get(1)
solaris(1)
神经网络(1)
laravel(1)
云直播(1)
短视频(1)
云数据库 MongoDB(1)
海外加速(1)
消息队列 CMQ 版(1)
短信(1)
云推荐引擎(1)
svg(1)
socket.io(1)
webpack(1)
koa(1)
gulp(1)
grunt(1)
devops(1)
数据迁移(1)
无人驾驶(1)
图像识别(1)
yum(1)
spring boot(1)
ftp(1)
cdn(1)
dubbo(1)
ddos(1)
udp(1)
敏捷开发(1)
gcc(1)
iis(1)
socket编程(1)
uml(1)
ntp(1)
小程序(1)
hbase(1)
腾讯云开发者社区(1)
流计算 Oceanus(1)
architecture(1)
count(1)
key(1)
null(1)
select(1)
架构(1)
框架(1)
软件架构(1)
设计模式(1)
统计(1)
重构(1)
搜索文章
搜索
搜索
关闭
Spring AOP是什么?你都拿它做什么?
aop
spring
jdk
面向对象编程
为什么会有面向切面编程(AOP)?我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为,例如日志、权限验证、事务等功能时,只能在在每个对象里引用公共行为。这样做不便于维护,而且有大量重复代码。AOP的出现弥补了OOP的这点不足。
哲洛不闹
2019-01-28
420
0
面试中问的话题Spring工作原理
spring
java
xml
aop
容器
Spring工作原理 内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置 文件来动态的创建对象,和调用对象里的方法的 。 Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过 配置类达到的。 Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 管理的(Spring根据这些配置 内部通过反射去动态的组装对象) 要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。 Spring里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式) Spring里的配置是很多的,很难都记住,但是Spring里的精华也无非就是以上的两点,把以上两点跟理解了 也就基本上掌握了Spring. Spring AOP与IOC 一、 IoC(Inversion of control): 控制反转 1、IoC: 概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系 核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean 二、AOP(Aspect-Oriented Programming): 面向方面编程 1、 代理的两种方式: 静态代理: 针对每个具体类分别编写代理类; 针对一个接口编写一个代理类; 动态代理: 针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类 Spring 优缺点 它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment,等等 优点 a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。 b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。 c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。 d. 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。 e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。 f. 使用Spring构建的应用程序易于单元测试。 g. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。 h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。 i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。 Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。 缺点:jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
哲洛不闹
2018-09-19
445
0
Java Web系列:Spring依赖注入基础
java
spring
aop
.net
express
Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构、基础设施和常用功能性组件,而是可以专注业务逻辑。因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大。Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下:
哲洛不闹
2018-09-19
488
0
69 个经典 Spring 面试题和答案
spring
java
开源
aop
容器
Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。
哲洛不闹
2018-09-18
355
0
关于Spring的69个面试问答——终极列表
spring
java
mvc
开源
aop
这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的。下次你再也不用担心你的面试了,Java Code Geeks这就帮你解答。
哲洛不闹
2018-09-18
737
0
那些经常被遗忘的 Java 面试题
java
存储
api
aop
jvm
静态内部类实际上与普通类(即类名必须与文件名一样的顶级类)一样,只是静态内部类在某一类的内部定义了而已,既然是类,要想使用就必须实例化。概念上与静态变量、静态方法是不一样的,不要被“静态”两个字迷惑了(不要以为凡是静态的东西就不需要实例化就可以直接使用,静态内部类是有区别),而且只有静态内部类,而没有静态类(顶级类)的概念。
哲洛不闹
2018-09-18
366
0
Java 异常处理的误区和经验总结
java
sql
jsp
容器
aop
本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。
哲洛不闹
2018-09-14
525
0
我的编码习惯 - Controller规范
aop
json
java
xml
git
第一篇文章中,我贴了2段代码,第一个是原生态的,第2段是我指定了接口定义规范,使用AOP技术之后最终交付的代码,从15行到1行,自己感受一下。今天来说说大家关注的AOP如何实现。
哲洛不闹
2018-09-14
428
0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档