{"id":2897,"date":"2022-12-25T16:57:02","date_gmt":"2022-12-25T08:57:02","guid":{"rendered":"https:\/\/qaqaq.top\/?p=2897"},"modified":"2022-12-25T19:12:22","modified_gmt":"2022-12-25T11:12:22","slug":"spring5-%e6%a1%86%e6%9e%b6%e6%96%b0%e5%8a%9f%e8%83%bd","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=2897","title":{"rendered":"Spring5 \u6846\u67b6\u65b0\u529f\u80fd"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Spring5 \u6846\u67b6\u65b0\u529f\u80fd<\/h2>\n\n\n\n<p>1\u3001\u6574\u4e2a Spring5 \u6846\u67b6\u7684\u4ee3\u7801\u57fa\u4e8e Java8\uff0c\u8fd0\u884c\u65f6\u517c\u5bb9 JDK9\uff0c\u8bb8\u591a\u4e0d\u5efa\u8bae\u4f7f\u7528\u7684\u7c7b\u548c\u65b9<br>\u6cd5\u5728\u4ee3\u7801\u5e93\u4e2d\u5220\u9664<\/p>\n\n\n\n<p>2\u3001Spring 5.0 \u6846\u67b6\u81ea\u5e26\u4e86\u901a\u7528\u7684\u65e5\u5fd7\u5c01\u88c5<br>\uff081\uff09Spring5 \u5df2\u7ecf\u79fb\u9664 Log4jConfigListener\uff0c\u5b98\u65b9\u5efa\u8bae\u4f7f\u7528 Log4j2<br>\uff082\uff09Spring5 \u6846\u67b6\u6574\u5408 Log4j2<\/p>\n\n\n\n<p>\u7b2c\u4e00\u6b65 \u5f15\u5165 jar \u5305<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-384.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"243\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-384.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2909\"  sizes=\"(max-width: 787px) 100vw, 787px\" \/><\/div><\/figure>\n\n\n\n<p>\u7b2c\u4e8c\u6b65 \u521b\u5efa log4j2.xml \u914d\u7f6e\u6587\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n&lt;!--\u65e5\u5fd7\u7ea7\u522b\u4ee5\u53ca\u4f18\u5148\u7ea7\u6392\u5e8f: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->\r\n&lt;!--Configuration\u540e\u9762\u7684status\u7528\u4e8e\u8bbe\u7f6elog4j2\u81ea\u8eab\u5185\u90e8\u7684\u4fe1\u606f\u8f93\u51fa\uff0c\u53ef\u4ee5\u4e0d\u8bbe\u7f6e\uff0c\u5f53\u8bbe\u7f6e\u6210trace\u65f6\uff0c\u53ef\u4ee5\u770b\u5230log4j2\u5185\u90e8\u5404\u79cd\u8be6\u7ec6\u8f93\u51fa-->\r\n&lt;configuration status=\"INFO\">\r\n    &lt;!--\u5148\u5b9a\u4e49\u6240\u6709\u7684appender-->\r\n    &lt;appenders>\r\n        &lt;!--\u8f93\u51fa\u65e5\u5fd7\u4fe1\u606f\u5230\u63a7\u5236\u53f0-->\r\n        &lt;console name=\"Console\" target=\"SYSTEM_OUT\">\r\n            &lt;!--\u63a7\u5236\u65e5\u5fd7\u8f93\u51fa\u7684\u683c\u5f0f-->\r\n            &lt;PatternLayout pattern=\"%d{yyyy-MM-dd HH:mm:ss.SSS} &#91;%t] %-5level %logger{36} - %msg%n\"\/>\r\n        &lt;\/console>\r\n    &lt;\/appenders>\r\n    &lt;!--\u7136\u540e\u5b9a\u4e49logger\uff0c\u53ea\u6709\u5b9a\u4e49\u4e86logger\u5e76\u5f15\u5165\u7684appender\uff0cappender\u624d\u4f1a\u751f\u6548-->\r\n    &lt;!--root\uff1a\u7528\u4e8e\u6307\u5b9a\u9879\u76ee\u7684\u6839\u65e5\u5fd7\uff0c\u5982\u679c\u6ca1\u6709\u5355\u72ec\u6307\u5b9aLogger\uff0c\u5219\u4f1a\u4f7f\u7528root\u4f5c\u4e3a\u9ed8\u8ba4\u7684\u65e5\u5fd7\u8f93\u51fa-->\r\n    &lt;loggers>\r\n        &lt;root level=\"info\">\r\n            &lt;appender-ref ref=\"Console\"\/>\r\n        &lt;\/root>\r\n    &lt;\/loggers>\r\n&lt;\/configuration><\/code><\/pre>\n\n\n\n<p>\u81ea\u5b9a\u4e49\u65e5\u5fd7<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\r\n * @author RichieZhang\r\n * @create 2022-12-25 17:14\r\n *\/\r\npublic class UserLog {\r\n\r\n    private static final Logger log = LoggerFactory.getLogger(UserLog.class);\r\n\r\n    public static void main(String&#91;] args) {\r\n        log.info(\"hello log4j2\");\r\n        log.warn(\"hello log4j2\");\r\n    }\r\n}<\/code><\/pre>\n\n\n\n<p>3\u3001Spring5 \u6846\u67b6\u6838\u5fc3\u5bb9\u5668\u652f\u6301@Nullable \u6ce8\u89e3<\/p>\n\n\n\n<p>\uff081\uff09@Nullable \u6ce8\u89e3\u53ef\u4ee5\u4f7f\u7528\u5728\u65b9\u6cd5\u4e0a\u9762\uff0c\u5c5e\u6027\u4e0a\u9762\uff0c\u53c2\u6570\u4e0a\u9762\uff0c\u8868\u793a\u65b9\u6cd5\u8fd4\u56de\u53ef\u4ee5\u4e3a\u7a7a\uff0c\u5c5e\u6027\u503c\u53ef\u4ee5<br>\u4e3a\u7a7a\uff0c\u53c2\u6570\u503c\u53ef\u4ee5\u4e3a\u7a7a<\/p>\n\n\n\n<p>\uff082\uff09\u6ce8\u89e3\u7528\u5728\u65b9\u6cd5\u4e0a\u9762\uff0c\u65b9\u6cd5\u8fd4\u56de\u503c\u53ef\u4ee5\u4e3a\u7a7a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-385.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"210\" height=\"64\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-385.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2911\"\/><\/div><\/figure>\n\n\n\n<p>\uff083\uff09\u6ce8\u89e3\u4f7f\u7528\u5728\u65b9\u6cd5\u53c2\u6570\u91cc\u9762\uff0c\u65b9\u6cd5\u53c2\u6570\u53ef\u4ee5\u4e3a\u7a7a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-386.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"91\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-386.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2912\"  sizes=\"(max-width: 519px) 100vw, 519px\" \/><\/div><\/figure>\n\n\n\n<p>\uff084\uff09\u6ce8\u89e3\u4f7f\u7528\u5728\u5c5e\u6027\u4e0a\u9762\uff0c\u5c5e\u6027\u503c\u53ef\u4ee5\u4e3a\u7a7a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-387.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"269\" height=\"73\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-387.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2913\"\/><\/div><\/figure>\n\n\n\n<p>4\u3001Spring5 \u6838\u5fc3\u5bb9\u5668\u652f\u6301\u51fd\u6570\u5f0f\u98ce\u683c GenericApplicationContext<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u51fd\u6570\u5f0f\u98ce\u683c\u521b\u5efa\u5bf9\u8c61\uff0c\u4ea4\u7ed9spring\u8fdb\u884c\u7ba1\u7406\r\n    @Test\r\n    public void testGenericApplicationContext() {\r\n        \/\/ 1 \u521b\u5efaGenericApplicationContext\u5bf9\u8c61\r\n        GenericApplicationContext context = new GenericApplicationContext();\r\n        \/\/ 2 \u8c03\u7528context\u7684\u65b9\u6cd5\u5bf9\u8c61\u6ce8\u518c\r\n        context.refresh();\r\n        context.registerBean(\"user1\", User.class, () -> new User());\r\n        \/\/ 3 \u83b7\u53d6\u5728spring\u6ce8\u518c\u7684\u5bf9\u8c61\r\n        \/\/User user = (User) context.getBean(\"top.qaqaq.spring5.test.User\");\r\n        User user = (User) context.getBean(\"user1\");\r\n        System.out.println(user);\r\n    }<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>package top.qaqaq.spring5.test;\r\n\r\n\/**\r\n * @author RichieZhang\r\n * @create 2022-12-25 18:13\r\n *\/\r\npublic class User {\r\n\r\n    public static void main(String&#91;] args) {\r\n        User user = new User();\r\n    }\r\n}\r\n<\/code><\/pre>\n\n\n\n<p>5\u3001Spring5 \u652f\u6301\u6574\u5408 JUnit5<\/p>\n\n\n\n<p>\uff081\uff09\u6574\u5408 JUnit4<\/p>\n\n\n\n<p>\u7b2c\u4e00\u6b65 \u5f15\u5165 Spring \u76f8\u5173\u9488\u5bf9\u6d4b\u8bd5\u4f9d\u8d56<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-388.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"409\" height=\"57\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-388.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2914\"  sizes=\"(max-width: 409px) 100vw, 409px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-389.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"495\" height=\"132\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-389.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2915\"  sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/div><\/figure>\n\n\n\n<p>\u7b2c\u4e8c\u6b65 \u521b\u5efa\u6d4b\u8bd5\u7c7b\uff0c\u4f7f\u7528\u6ce8\u89e3\u65b9\u5f0f\u5b8c\u6210<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\r\n * @author RichieZhang\r\n * @create 2022-12-25 18:44\r\n *\/\r\n\r\n@RunWith(SpringJUnit4ClassRunner.class) \/\/\u5355\u5143\u6d4b\u8bd5\u6846\u67b6\r\n@ContextConfiguration(\"classpath:bean1.xml\") \/\/\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\r\npublic class JTest4 {\r\n\r\n    @Autowired\r\n    private UserService userService;\r\n\r\n    @Test\r\n    public void test1() {\r\n        userService.accountMoney();\r\n    }\r\n\r\n}<\/code><\/pre>\n\n\n\n<p>\uff082\uff09Spring5 \u6574\u5408 JUnit5<\/p>\n\n\n\n<p>\u7b2c\u4e00\u6b65 \u5f15\u5165 JUnit5 \u7684 jar \u5305<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-390.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"522\" height=\"361\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2022\/12\/image-390.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2916\"  sizes=\"(max-width: 522px) 100vw, 522px\" \/><\/div><\/figure>\n\n\n\n<p>\u7b2c\u4e8c\u6b65 \u521b\u5efa\u6d4b\u8bd5\u7c7b\uff0c\u4f7f\u7528\u6ce8\u89e3\u5b8c\u6210<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\r\n * @author RichieZhang\r\n * @create 2022-12-25 18:54\r\n *\/\r\n\r\n@ExtendWith(SpringExtension.class)\r\n@ContextConfiguration(\"classpath:bean1.xml\")\r\r\npublic class JTest5 {\r\n\r\n    @Autowired\r\n    private UserService userService;\r\n\r\n    @Test\r\n    public void test1() {\r\n        userService.accountMoney();\r\n    }\r\n\r\n}\r\n<\/code><\/pre>\n\n\n\n<p>\uff083\uff09\u4f7f\u7528\u4e00\u4e2a\u590d\u5408\u6ce8\u89e3\u66ff\u4ee3\u4e0a\u9762\u4e24\u4e2a\u6ce8\u89e3\u5b8c\u6210\u6574\u5408<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\r\n * @author RichieZhang\r\n * @create 2022-12-25 18:54\r\n *\/\r\n\r\n\/\/@ExtendWith(SpringExtension.class)\r\n\/\/@ContextConfiguration(\"classpath:bean1.xml\")\r\n<strong>@SpringJUnitConfig(locations = \"classpath:bean1.xml\")<\/strong>\r\npublic class JTest5 {\r\n\r\n    @Autowired\r\n    private UserService userService;\r\n\r\n    @Test\r\n    public void test1() {\r\n        userService.accountMoney();\r\n    }\r\n\r\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring5 \u6846\u67b6\u65b0\u529f\u80fd 1\u3001\u6574\u4e2a Spring5 \u6846\u67b6\u7684\u4ee3\u7801\u57fa\u4e8e Java8\uff0c\u8fd0\u884c\u65f6\u517c\u5bb9 JDK9\uff0c\u8bb8\u591a\u4e0d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[102],"tags":[113],"class_list":["post-2897","post","type-post","status-publish","format-standard","hentry","category-spring-code","tag-spring"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/2897"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2897"}],"version-history":[{"count":2,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/2897\/revisions"}],"predecessor-version":[{"id":2917,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/2897\/revisions\/2917"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}