ͻ񻣼
# SpringÊÂÎñµÄÆßÖÖ´«²¥ÐÐΪ **Ê×ÏȾÙÀýÊÂÎñµÄǶÌ×£º** ```java ServiceA { void methodA() { ServiceB.methodB(); } } ServiceB { void methodB() { } } ``` *ÆäÖÐServiceA#methodA(a56爆大奖在线娱乐 ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¸öÆÕͨ¶ÔÏó£¬ÔÚÄÚ´æÖÐÕ¼¶à´ó£¿ ÆÕͨ¶ÔÏóÔÚÄÚ´æÖÐÖ÷Òª·ÖÈý²¿·Ö×é³É ¶ÔÏóÍ·£º¶ÔÏóÍ··ÖmarkworkºÍclasspointer×é³É£¬markwordÖ÷Òª´æ·Å±ê¼Ç룬classpointerÓÃÀ´´æ·ÅÀàÐÍÖ¸Õë ¶ÔÏóÊý¾Ý£ºÕâÀïÖ÷Òª´æ·ÅµÄÊÇÖ¸ÕëµÄµØÖ· ¶ÔÆëÌî³ä£ºhotspot¹æ¶¨£¬¶ÔÏóµÄÆðʼµØÖ·Õ¼ÓÃÄÚ´æ´óС±Ø ÔĶÁÈ«ÎÄ
ͻ񻣼
a56爆大奖在线娱乐ÃÇÎÞÐè¹ØÐÄLogback°æ±¾£¬Ö»Ðè¹Ø×¢Boot°æ±¾¼´¿É£¬Parent¹¤³Ì×Ô¶¯¼¯³ÉÁËLogback¡£Springboot±¾Éí¾Í¿ÉÒÔ´òÓ¡ÈÕÖ¾£¬ÎªÊ²Ã´»¹ÐèÒª¹æ·¶ÈÕÖ¾£¿ ÈÕ־ͳһ£¬·½±ã²éÔĹÜÀí¡£ ÈÕÖ¾¹éµµ¹¦ÄÜ¡£ ÈÕÖ¾³Ö¾Ã»¯¹¦ÄÜ¡£ ·Ö²¼Ê½ÈÕÖ¾²é¿´¹¦ÄÜ£¨ELK£©£¬·½±ãËÑË÷ºÍ²éÔÄ¡£ ¹ØÓÚLogbackµÄ½éÉܾÍÂÔ ÔĶÁÈ«ÎÄ
ͻ񻣼
ÔÚ³ÌÐòÖÐÒª¶Ôijһ¶a56爆大奖在线娱乐µÎñÂß¼½øÐмÆʱ£¬Ò»°ã²ÉÓÃÈçÏ·½·¨À´Í³¼ÆºÄʱ£º public static void main(String[] args) { long startTime = System.currentTimeMillis(); doSomeThing(); long endTime = S ÔĶÁÈ«ÎÄ
ͻ񻣼
³¡¾°ËµÃ÷ ±ÈÈça56爆大奖在线娱乐ÃÇÏë´òÓ¡·µ»Ø²ÎÊýµÄ¾ßÌåÇé¿ö£¬Èç¹ûÀïÃæÓÐö¾ÙÀàÐÍ£¬´òÓ¡µÄ²ÎÊý²»ÍêÕû¡£ @Getter @Setter @ToString public class ResultResponse { private String name; private Integer age; private Re ÔĶÁÈ«ÎÄ
ͻ񻣼
logrotate»ù±¾¶¼»áĬÈÏ°²×°£¬ËüÖ÷ÒªÊÇÀ´½«ÈÕÖ¾×öÇиîµÄ¹¤¾ß£¬±ÈÈçSpringBoot´òÓ¡ÈÕÖ¾£¬nginxµÄaccessºÍerrorÈÕÖ¾µÈ¡£ ÅäÖÃÎļþ Ö÷ÒªÓÐÁ½¸öÅäÖÃÎļþ /etc/logrotate.d ϵÄÓû§×Ô¶¨ÒåÅäÖÃÎļþ /etc/logrotate.conf È«¾ÖÅäÖÃÎļþ ÅäÖÃngin ÔĶÁÈ«ÎÄ
ͻ񻣼
ΪʲôҪ½ÓÈëHTTPS£¿HTTPSÐÒéÊÇÓÉSSL+HTTPÐÒé¹¹½¨µÄ¿É½øÐмÓÃÜ´«Êä¡¢Éí·ÝÈÏÖ¤µÄÍøÂçÐÒ飬Ҫ±ÈHTTPÐÒ鰲ȫ¡£HTTP ±ê×¼¶Ë¿ÚÊÇ80 £¬¶ø HTTPS µÄ±ê×¼¶Ë¿ÚÊÇ443¡£ ÍƼöһƪÎÄÕ£¬½éÉܵĺÜÏêϸ£º/xinzhao/p/494934 ÔĶÁÈ«ÎÄ
ͻ񻣼
AOP(Aspect Oriented Programming)£ºÃæÏòÇÐÃæ±à³Ì¡£AOPÊÇÔÚa56爆大奖在线娱乐ÃÇÔÀ´Ð´µÄ´úÂëµÄ»ù´¡ÉÏ£¬½øÐÐÒ»¶¨µÄ°ü×°£¬±ÈÈçÔÚ·½·¨Ö´ÐÐÇ°¡¢·½·¨·µ»Øºó¡¢·½·¨Å׳öÒì³£ºóµÈµØ·½½øÐÐÒ»¶¨µÄÀ¹½Ø´¦Àí»òÕßÔöÇ¿´¦Àí¡£a56爆大奖在线娱乐ÃÇÐèҪʵÏÖÒ»¸ö´úÀíÀ´´´½¨ÊµÀý£¬Êµ¼ÊÔËÐеÄʵÀýÆäʵÊÇÉú³ÉµÄ´úÀíÀàµÄʵÀý¡£ Spring ÔĶÁÈ«ÎÄ
ͻ񻣼
Aware½Ó¿ÚÊÇÒ»¸ö±êÖ¾ÐÔ½Ó¿Ú£¬¼Ì³Ð´Ë½Ó¿ÚµÄ½Ó¿ÚxxxAwareµÄʵÏÖÀ࣬ÔÚÈÝÆ÷´´½¨Íê³Éºó£¬»á»Øµ÷ʵÏÖ·½·¨£¬ÏÂÃæ¾ÙÀý£º ÓкܶàxxxAware½Ó¿Ú£¬ÏÂÃæ¾ÙÁ½¸öÀý×Ó /** * description: ½«ÊµÏÖxxxAware½Ó¿ÚµÄBean×¢²áµ½IOCÈÝÆ÷ÖеÄʱºò£¬»á½«xxxAwareµÄʵÏÖ·½·¨½øÐÐ»Ø ÔĶÁÈ«ÎÄ
ͻ񻣼
SpringΪa56爆大奖在线娱乐ÃÇÌṩµÄ¶à»·¾³Æô¶¯ ÅäÖÃÀ࣬עÈëÈý¸ö²»Í¬»·¾³µÄÊý¾ÝÔ´£¬²¢¼ÓÉÏ×¢½â /** * @author zhangjianbing * @date 2020Äê9ÔÂ23ÈÕ */ @Configuration public class MyConfig { @Bean @Profile("dev" ÔĶÁÈ«ÎÄ
ͻ񻣼
Ê×Ïȶ¨ÒåʵÌå /** * @author zhangjianbing * @date 2020Äê9ÔÂ23ÈÕ */ @Data public class Apple { @Value("${apple.color}") private String color; @Value("ºì¸»Ê¿") priva ÔĶÁÈ«ÎÄ
ͻ񻣼
SpringµÄBeanºóÖô¦ÀíÆ÷£¬BeanPostProcessorÖ÷ÒªÊÇÔÚÀà³õʼ»¯Ö®Ç°£¬¸úÖ®ºó´¦ÀíÏàÓ¦µÄÊ¡£ ʵÌåÀà public class Train { public Train() { System.out.println("Train¹¹Ôì·½·¨Ö´ÐС£¡£¡£¡£¡£¡£"); } public vo ÔĶÁÈ«ÎÄ
ͻ񻣼
@PostConstructºÍ@PreDestroyÀ´×ÔJSR250¹æ·¶£¬ÔÚ¹¹Ôì·½·¨Ö´ÐУ¬²¢ÇÒ¸³ÖµÍê³ÉºóÖ´ÐÐPostConstruct£¬ÔÚÈÝÆ÷ÒƳý¶ÔÏó֮ǰִÐÐPreDestroy¡£ ʵÌåÀà public class Dog { public Dog() { System.out.println("D ÔĶÁÈ«ÎÄ
ͻ񻣼
BeanʵÏÖ½Ó¿ÚInitializingBeanºÍDisposableBean BeanʵÌåÀà /** * @author zhangjianbing * @since 2020/9/22 */ public class BlueYes implements InitializingBean, Di ÔĶÁÈ«ÎÄ
ͻ񻣼
@Bean(initMethod = "init", destroyMethod = "destroy")·½Ê½ BeanʵÌå @Getter @Setter @ToString @AllArgsConstructor public class Person { private String name ÔĶÁÈ«ÎÄ
ͻ񻣼
FactoryBeanÊÇÓÃÀ´ÏòÈÝÆ÷ÖÐ×¢ÈëBeanµÄ½Ó¿Ú¡£¶øBeanFactoryÊÇ´ÓÈÝÆ÷ÖÐÈ¡BeanµÄ½Ó¿Ú¡£ ¶¨ÒåFishʵÌåÀà /** * @author zhangjianbing * @date 2020Äê9ÔÂ23ÈÕ */ @Data public class Fish { private S ÔĶÁÈ«ÎÄ
ͻ񻣼
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Import { /** * {@link Configuration}, {@link ImportSelecto ÔĶÁÈ«ÎÄ
ͻ񻣼
²ÉÓÃ×¢½âµÄ·½Ê½À´×¢Èëbean ±àдconfigÀà /** * @author zhangjianbing * time 2020/09/23 * https://www.zhangjianbing.com */ @Configuration public class ConditionConfig ÔĶÁÈ«ÎÄ
ͻ񻣼
ÀÁ¼ÓÔØ£¬Ö»Óе±Ê¹ÓÃBeanµÄʱºò²Å»á±»ÊµÀý»¯¡£ @Configuration public class PersonConfig { /** * ÀÁ¼ÓÔØÖ÷ÒªÓÃÔÚµ¥ÀýģʽÉÏ * ±ê×¢ÁËÀÁ¼ÓÔØ×¢½â£¬ÈÝÆ÷³õʼ»¯¹ý³ÌÖв»»áʵÀý»¯Bean * Ö»Óе±Ê¹ÓõÄʱºò²Å»áʵÀý»¯Bean£¬ÇÒÖ»»áʵÀý»¯Ò»´Î */ @La ÔĶÁÈ«ÎÄ
ͻ񻣼
SpringÈÝÆ÷ÖеÄBeanĬÈÏÊǵ¥ÀýµÄ£¬¿ÉÒÔʹÓÃ@ScopeÀ´ÉèÖÃBeanµÄÀàÐÍ /** * @author zhangjianbing * time 2020/09/23 * https://www.zhangjianbing.com */ @Configuration public class ÔĶÁÈ«ÎÄ