使用spring后,哪些类该用实例注入(DI),哪些类该用new来创建实例? Spring 类不能用

spring\u4e2d\u54ea\u4e9b\u7c7b\u9700\u8981\u4f5c\u4e3abean\u6765\u8fdb\u884c\u6ce8\u5165\u7ba1\u7406

\u9996\u5148\u8bf4spring\u7ba1\u7406\u7684\u7c7b\uff0c\u5c31\u662fspring\u5728\u542f\u52a8\u7684\u65f6\u5019\uff0c\u5728spring\u5bb9\u5668\u4e2d\uff0c\u7531spring\u7ed9\u4f60\u521b\u5efa\u7684\uff0c\u4e5f\u5c31new\u7684\uff0cspring\u4f1a\u5e2e\u4f60\u7ef4\u62a4\u3002\u4e00\u822c\u90fd\u662f\u5355\u4f8b\u7684\uff0c\u4e5f\u5c31\u662f\u4e00\u4e2a\u5bf9\u8c61\u3002
\u9700\u8981\u81ea\u5df1new\u7684\u5b9e\u4f8b\uff0c\u4e00\u822c\u662f\u6570\u636e\u5b9e\u4f8b\uff0c\u6bd4\u5982\u4f60\u8981\u63d2\u5165\u4e00\u6761\u6570\u636e\uff0c\u5c31\u9700\u8981\u81ea\u5df1new\u3002\u56e0\u4e3a\u8fd9\u4e9b\u5b9e\u4f8b\uff0c\u5305\u542b\u6570\u636e\u4fe1\u606f\uff0c\u6bcf\u4e2a\u5b9e\u4f8b\u90fd\u662f\u4e0d\u540c\u7684\uff0c\u5f53\u7136\u4e0d\u80fd\u662f\u5355\u4f8b\u6a21\u5f0f\u7684\uff0c\u4e5f\u5c31\u4e0d\u80fd\u4f7f\u7528\u6ce8\u5165\u3002

\u7136\u540e\u8bf4\uff1aSpring AOP\u7684\u76ee\u6807\u662f\u4e0eSpring\u7684\u4f9d\u8d56\u6ce8\u5165\u529f\u80fd\u826f\u597d\u5730\u96c6\u6210...\u201d
\u662f\u6307spring\u7ba1\u7406\u7684\u5b9e\u4f8b\uff0c\u4f8b\u5982\u554a\uff0c\u4f60\u58f0\u660e\u4e86\u4e00\u4e2aid\u4e3auser\u7684bean\uff0c\u5728aop\u4e2d\uff0c\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u8be5id\u6765\u5173\u8054\u8fd9\u4e2a\u5b9e\u4f8b\u3002

\u6700\u540e\uff1a\u8981\u60f3\u7ed9\u5c06\u6765\u7559\u4e0b\u8db3\u591f\u5b9e\u73b0AOP\u7684\u673a\u4f1a\uff0c\u5c82\u4e0d\u662f\u8981\u5c3d\u53ef\u80fd\u7528\u5b9e\u4f8b\u6ce8\u5165\u6765\u66ff\u4ee3\u51e0\u4e4e\u6240\u6709\u7684new\uff1f
spring\u7ba1\u7406\u7684\u4e00\u822c\u90fd\u662f\u903b\u8f91\u7c7b\uff0c\u662f\u5355\u4f8b\uff0c\u662f\u7ebf\u7a0b\u5b89\u5168\u7684\u3002
\u5f53\u7136\uff0c\u903b\u8f91\u7c7b\u4e2d\u53ef\u4ee5\u6709\u6570\u636e\u7c7b\uff0c\u8fd9\u65f6\u5019\u4f60\u53ef\u4ee5\u5728\u7a0b\u5e8f\u4e2dnew
\u4f60\u4f7f\u7528aop\uff0c\u4f60\u4e0d\u662f\u53bb\u5bf9\u4e00\u4e2a\u6570\u636e\u8fdb\u884caop\u5427\uff1f\u80af\u5b9a\u662f\u9488\u5bf9\u67d0\u4e2a\u903b\u8f91\u8fdb\u884c\u7684\u3002

\u4f60\u662f\u4e0d\u662f\u81ea\u5df1\u81ea\u5b9a\u4e49\u4e86\u4e00\u4e2aString\u7c7b

首先说spring管理的类,就是spring在启动的时候,在spring容器中,由spring给你创建的,也就new的,spring会帮你维护。一般都是单例的,也就是一个对象。
需要自己new的实例,一般是数据实例,比如你要插入一条数据,就需要自己new。因为这些实例,包含数据信息,每个实例都是不同的,当然不能是单例模式的,也就不能使用注入。

然后说:Spring AOP的目标是与Spring的依赖注入功能良好地集成...”
是指spring管理的实例,例如啊,你声明了一个id为user的bean,在aop中,就可以直接使用该id来关联这个实例。

最后:要想给将来留下足够实现AOP的机会,岂不是要尽可能用实例注入来替代几乎所有的new?
spring管理的一般都是逻辑类,是单例,是线程安全的。
当然,逻辑类中可以有数据类,这时候你可以在程序中new
你使用aop,你不是去对一个数据进行aop吧?肯定是针对某个逻辑进行的。

先回答第一个问题,如果给分,就回答第二个
使用spring作为业务逻辑层的话,建议都使用依赖注入的方式,管理实例,在来上添加annotation的话,不会增加多少代码量,但是可以方便的实例化类。你说的New的方式,我理解就是prototype方式,默认spring的bean是singleton的,即整个作用域内,都只会存在一个实例,但显然在很多时候,比如并发请求响应的情况下,你需要建多个实例,这时候可以声明为prototype形式

po用new 其他的都注入

去坛子里问吧。

  • 浣跨敤spring鍚,鍝簺绫昏鐢瀹炰緥娉ㄥ叆(DI),鍝簺绫昏鐢╪ew鏉ュ垱寤哄疄渚?_鐧惧害...
    绛旓細棣栧厛璇磗pring绠$悊鐨勭被锛屽氨鏄痵pring鍦ㄥ惎鍔ㄧ殑鏃跺欙紝鍦╯pring瀹瑰櫒涓紝鐢眘pring缁欎綘鍒涘缓鐨勶紝涔熷氨new鐨锛宻pring浼氬府浣犵淮鎶ゃ備竴鑸兘鏄崟渚嬬殑锛屼篃灏辨槸涓涓璞°傞渶瑕佽嚜宸眓ew鐨勫疄渚嬶紝涓鑸槸鏁版嵁瀹炰緥锛屾瘮濡備綘瑕佹彃鍏ヤ竴鏉℃暟鎹紝灏遍渶瑕佽嚜宸眓ew銆傚洜涓鸿繖浜涘疄渚嬶紝鍖呭惈鏁版嵁淇℃伅锛屾瘡涓疄渚嬮兘鏄笉鍚岀殑锛屽綋鐒朵笉鑳芥槸鍗曚緥妯″紡...
  • Spring鍝簺绫闇瑕佹敞鍏,鍝簺涓鐢
    绛旓細鍩烘湰涓婃槸杩欐牱鐨勶紝涓嶈繃娉ㄥ叆鐨勮瘽涔熷垎鍗曚緥鍜屽渚嬶紝闇瑕佹牴鎹疄闄呮儏鍐靛幓璁剧疆锛宻pring榛樿鎯呭喌涓嬮兘鏄崟渚嬬殑锛屼絾鏈変簺鎯呭喌涓嶉傜敤鍗曚緥锛屼緥濡傛湁鍏ㄥ眬鍙橀噺鐨勬椂鍊欙紝鍙兘浼氭湁涓浜涘苟鍙戦棶棰橈紝鍙兘灏遍渶瑕佽缃垚澶氫緥
  • Spring 鏍稿績绫讳粙缁
    绛旓細-AbstractAutowireCapableBeanFactory:缁撳悎 AbstractBeanFactory 鍜 鎺ュ彛 AutowireCapableBeanFactory銆-ConfigurableListableBeanFactory : BeanFactory 閰嶇疆娓呭崟锛屾寚瀹氬拷鐣ョ被鍨嬪強鎺ュ彛绛夈-DefaultListableBeanFactory: 缁煎悎涓婅堪鎵鏈夊姛鑳斤紝涓昏鏄 bean 娉ㄥ唽鍚庣殑澶勭悊銆俋ML 閰嶇疆鏂囦欢鐨勮鍙栨槸 Spring 涓噸瑕佺殑鍔熻兘锛屽洜涓...
  • SpringCloud绯诲垪-2Ribbon绠浠嬩笌搴旂敤
    绛旓細LoadBalancer 鏄Spring Cloud鑷爺鐨勭粍浠,鏀寔WebFlux銆 鐢变簬Ribbon鍋滄鏇存柊杩涘叆缁存姢鐘舵,鎵浠pring Cloud涓嶅緱涓嶇爺鍙戜竴濂楁柊鐨凩oadbalancer鏈哄埗杩涜鏇夸唬銆 1.寮曞叆Loadbalancer鐩稿叧jar鍖 2.瀹氫箟涓涓厤缃被,杩欎釜閰嶇疆绫婚氳繃纭紪鐮佺殑鏂瑰紡鍐欐浜唃oods-service杩欎釜鏈嶅姟鐨勫疄渚嬪垪琛,浠g爜濡備笅 3.鍒涘缓涓涓厤缃被,娉ㄥ叆涓涓狶oadBalancerC...
  • 鍒啀鑷繁鐬庡啓宸ュ叿绫讳簡,SpringBoot 鍐呯疆宸ュ叿绫诲簲鏈夊敖鏈,寤鸿鏀惰棌
    绛旓細鏈杩戝彂鐜板悓浜嬪啓浜嗕笉灏戦噸澶嶇殑宸ュ叿绫伙紝鍙戠幇鍏朵腑寰堝鍔熻兘锛孲pringBoot 鑷甫鐨勯兘鏈夈備簬鏄暣鐞嗕簡鏈枃锛屽笇鏈涜兘澶熷府鍔╁埌澶у锛1. 鏂█鏄竴涓昏緫鍒ゆ柇锛岀敤浜庢鏌ヤ笉搴旇鍙戠敓鐨勬儏鍐 2. Assert 鍏抽敭瀛楀湪 JDK1.4 涓紩鍏ワ紝鍙氳繃 JVM 鍙傛暟 -enableassertions 寮鍚 3. SpringBoot 涓彁渚涗簡 Ass...
  • spring aop鍙互瀹炵幇鍝簺绫诲瀷鐨勯氱煡
    绛旓細5. 鐜粫閫氱煡锛圓round Advice锛夛細鍖呭洿涓涓繛鎺ョ偣鐨勬墽琛岋紝绫讳技浜嶹eb涓璖ervlet瑙勮寖涓殑Filter鐨刣oFilter鏂规硶銆傚彲浠ュ湪鏂规硶鐨勮皟鐢ㄥ墠鍚庡畬鎴愯嚜瀹氫箟鐨勮涓猴紝涔熷彲浠ラ夋嫨鏄惁鎵ц杩炴帴鐐广傝繖鏄渶寮哄ぇ鐨勪竴绉嶉氱煡绫诲瀷锛屼絾涔熺浉瀵瑰鏉備竴浜涖傝繖浜涢氱煡绫诲瀷閮芥槸閫氳繃AOP鑱旂洘鎻愪緵鐨勬帴鍙f潵瀹炵幇鐨锛孲pring鎻愪緵浜嗚繖浜涙帴鍙g殑瀹炵幇绫伙紝骞...
  • spring涓昏鐨勪綔鐢?
    绛旓細Spring妗嗘灦鏄负浜嗚В鍐充紒涓氬簲鐢ㄥ紑鍙戠殑澶嶆潅鎬ц屽垱寤虹殑銆Spring鐨鐢ㄩ斾笉浠呬粎闄愪簬鏈嶅姟鍣ㄧ鐨勫紑鍙戙備粠绠鍗曟с佸彲娴嬭瘯鎬у拰鏉捐﹀悎鎬ц搴﹁岃█锛岀粷澶ч儴鍒咼ava搴旂敤閮藉彲浠ヤ粠Spring涓彈鐩娿浣跨敤鍩烘湰鐨凧avaBean浠f浛EJB锛屽苟鎻愪緵浜嗘洿澶氱殑浼佷笟搴旂敤鍔熻兘銆
  • SpringBoot:璁块棶鎷︽埅鍣℉andlerInterceptor鐨浣跨敤
    绛旓細SpringBoot 2.0 鍚庯紝璇ョ被琚爣璁颁负@Deprecated锛堝純鐢級銆傚畼鏂规帹鑽愮洿鎺ュ疄鐜癢ebMvcConfigurer鎴栬呯洿鎺ョ户鎵縒ebMvcConfigurationSupport锛屾柟寮忎竴 瀹炵幇WebMvcConfigurer鎺ュ彛锛 鎺ㄨ崘锛夛紝鏂瑰紡浜岀户鎵縒ebMvcConfigurationSupport绫 鍏朵腑甯哥敤鐨勬柟娉曪細浠ュ墠鍐橲pringMVC鐨勬椂鍊欙紝濡傛灉闇瑕佽闂竴涓〉闈紝蹇呴』瑕佸啓Controller绫伙紝鐒跺悗...
  • Spring 鍙互鍋鍝簺宸ヤ綔?
    绛旓細鍦ㄤ笟鍔¢昏緫灞锛屽埄鐢⊿pring妗嗘灦鐨勪緷璧栨敞鍏ュ疄鐜板涓氬姟閫昏緫绫诲拰DAO绫荤殑瀹炰緥鎵樼锛涘湪浜嬪姟澶勭悊鏂归潰锛屽埄鐢⊿pring鎻愪緵鐨勯潰鍚戝垏闈㈢殑浜嬪姟澶勭悊鍔熻兘锛屼娇瀵规暟鎹殑浜嬪姟鎺у埗鑴辩浜庢暟鎹闂帴鍙e疄鐜帮紱鍦ㄥ璞″叧绯绘槧灏勬柟闈紝鍒╃敤Spring瀵规暟鎹簱杩炴帴姹犵殑鎵樼鍜屽iBatis妗嗘灦鐨勬敮鎸併傚紑鍙戜汉鍛橀渶瑕佸畬鎴愬鏁版嵁婧愮殑閰嶇疆銆佸涓嶅悓妯″潡鎵瀵瑰簲...
  • spring鍔ㄦ佹暟鎹簮浣跨敤鍒扮殑璁捐妯″紡
    绛旓細spring鍔ㄦ佹暟鎹簮浣跨敤鍒扮殑璁捐妯″紡鏈夊伐鍘傛ā寮忋佸崟渚嬫ā寮忋佷唬鐞嗘ā寮忋佹ā鏉挎ā寮忋佽瀵熻呮ā寮忕瓑銆1銆佸伐鍘傛ā寮 宸ュ巶妯″紡鏄疛ava涓渶甯哥敤鐨勮璁℃ā寮忎箣涓銆傝繖绉嶇被鍨嬬殑璁捐妯″紡灞炰簬鍒涘缓鍨嬫ā寮忥紝瀹冩彁渚涗簡涓绉嶅垱寤哄璞$殑鏈浣虫柟寮忋傚湪宸ュ巶妯″紡涓紝鍦ㄥ垱寤哄璞℃椂涓嶄細瀵瑰鎴风鏆撮湶鍒涘缓閫昏緫锛屽苟涓旀槸閫氳繃浣跨敤涓涓叡鍚岀殑鎺ュ彛鏉...
  • 扩展阅读:spring into action ... 使用spring框架的好处 ... spring主要使用了哪些 ... spring是什么意思 ... spring的四个含义 ... spring翻译 ... spring的5个常用注解 ... spring如何使用事务 ... spring使用了哪些设计模式 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网