├── .babelrc ├── docs ├── .vuepress │ ├── config │ │ └── baiduCode.js │ ├── public │ │ ├── favicon.ico │ │ └── img │ │ │ ├── bg.gif │ │ │ ├── more.png │ │ │ ├── other.png │ │ │ ├── favicon.ico │ │ │ └── dunwu-logo.png │ └── plugins │ │ └── love-me │ │ └── index.js ├── Spring环境配置.docx ├── @pages │ ├── tagsPage.md │ ├── archivesPage.md │ └── categoriesPage.md ├── .markdownlint.json └── 01.Java │ └── 13.框架 │ └── 01.Spring │ └── 01.Spring核心 │ └── 24.SpringEL.md ├── codes ├── core │ ├── ioc │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── META-INF │ │ │ │ ├── user-config.properties │ │ │ │ ├── services │ │ │ │ │ └── example.spring.core.bean.life.UserFactory │ │ │ │ ├── spring-life.xml │ │ │ │ └── bean │ │ │ │ │ ├── BeanLifeCycle.xml │ │ │ │ │ └── BeanAlias.xml │ │ │ └── application.properties │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── core │ │ │ ├── bean │ │ │ ├── java │ │ │ │ ├── Job.java │ │ │ │ ├── Police.java │ │ │ │ └── Teacher.java │ │ │ ├── annotation │ │ │ │ ├── Performer.java │ │ │ │ ├── instrument │ │ │ │ │ ├── Instrument.java │ │ │ │ │ ├── Violin.java │ │ │ │ │ ├── Piano.java │ │ │ │ │ └── Guitar.java │ │ │ │ ├── autowire │ │ │ │ │ ├── Performer.java │ │ │ │ │ ├── instrument │ │ │ │ │ │ ├── Instrument.java │ │ │ │ │ │ ├── Piano.java │ │ │ │ │ │ ├── Guitar.java │ │ │ │ │ │ └── Violin.java │ │ │ │ │ └── Poetry.java │ │ │ │ ├── life │ │ │ │ │ ├── Auditorium.java │ │ │ │ │ └── App.java │ │ │ │ ├── Super.java │ │ │ │ └── factory │ │ │ │ │ ├── BeanFactory.java │ │ │ │ │ └── App.java │ │ │ ├── entity │ │ │ │ ├── job │ │ │ │ │ ├── Instrument.java │ │ │ │ │ ├── Performer.java │ │ │ │ │ ├── Piano.java │ │ │ │ │ ├── Guitar.java │ │ │ │ │ ├── Violin.java │ │ │ │ │ ├── Poetry.java │ │ │ │ │ └── Musician.java │ │ │ │ ├── fruit │ │ │ │ │ ├── Fruit.java │ │ │ │ │ ├── Apple.java │ │ │ │ │ ├── Banana.java │ │ │ │ │ └── Orange.java │ │ │ │ └── person │ │ │ │ │ └── City.java │ │ │ ├── action │ │ │ │ ├── TestA.java │ │ │ │ ├── TestB.java │ │ │ │ ├── TestD.java │ │ │ │ └── TestC.java │ │ │ └── life │ │ │ │ └── UserFactory.java │ │ │ ├── SpringIocApplication.java │ │ │ └── ioc │ │ │ └── Person.java │ ├── resource │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ ├── dev.properties │ │ │ └── prod.properties │ ├── profile │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── application-dev.properties │ │ │ ├── application-prod.properties │ │ │ ├── application-test.properties │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── core │ │ │ └── profile │ │ │ └── MessageService.java │ ├── property │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ ├── prop │ │ │ ├── validator.properties │ │ │ ├── custom.properties │ │ │ └── random.properties │ │ │ ├── application.properties │ │ │ └── logback.xml │ ├── async │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ ├── application.properties │ │ │ └── logback.xml │ ├── aop │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── core │ │ │ │ └── aop │ │ │ │ └── entity │ │ │ │ ├── Performer.java │ │ │ │ └── Instrumentalist.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ └── logback.xml │ ├── actuator │ │ ├── README.md │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── core │ │ │ │ └── actuator │ │ │ │ └── ActuatorApplication.java │ │ │ └── resources │ │ │ ├── application.properties │ │ │ └── logback.xml │ ├── bean │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── core │ │ │ │ └── bean │ │ │ │ ├── InfoDto.java │ │ │ │ ├── UserDto.java │ │ │ │ ├── User.java │ │ │ │ └── Company.java │ │ │ └── resources │ │ │ └── logback.xml │ ├── banner │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── core │ │ │ │ └── banner │ │ │ │ └── BannerApplication.java │ │ │ └── resources │ │ │ └── logback.xml │ ├── validation │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── core │ │ │ └── validation │ │ │ ├── annotation │ │ │ ├── AddCheck.java │ │ │ ├── EditCheck.java │ │ │ ├── Valid.java │ │ │ └── ValidRule.java │ │ │ └── ValidatorRule.java │ ├── data-binding │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── core │ │ │ └── binding │ │ │ └── TestBean.java │ └── conversion │ │ └── src │ │ └── main │ │ └── resources │ │ └── logback.xml ├── web │ ├── multipart │ │ ├── src │ │ │ ├── test │ │ │ │ └── resources │ │ │ │ │ └── testupload.txt │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application.properties │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── web │ │ │ │ └── multipart │ │ │ │ ├── StorageException.java │ │ │ │ ├── StorageFileNotFoundException.java │ │ │ │ └── StorageService.java │ │ └── README.md │ ├── view │ │ ├── easyui │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── static │ │ │ │ │ ├── plugin │ │ │ │ │ │ └── themes │ │ │ │ │ │ │ └── default │ │ │ │ │ │ │ └── numberbox.css │ │ │ │ │ └── lib │ │ │ │ │ │ └── easyui │ │ │ │ │ │ └── themes │ │ │ │ │ │ ├── bootstrap │ │ │ │ │ │ ├── numberbox.css │ │ │ │ │ │ ├── images │ │ │ │ │ │ │ ├── blank.gif │ │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ │ ├── combo_arrow.png │ │ │ │ │ │ │ ├── menu_arrows.png │ │ │ │ │ │ │ ├── panel_tools.png │ │ │ │ │ │ │ ├── tabs_icons.png │ │ │ │ │ │ │ ├── tree_icons.png │ │ │ │ │ │ │ ├── datebox_arrow.png │ │ │ │ │ │ │ ├── layout_arrows.png │ │ │ │ │ │ │ ├── linkbutton_bg.png │ │ │ │ │ │ │ ├── slider_handle.png │ │ │ │ │ │ │ ├── tagbox_icons.png │ │ │ │ │ │ │ ├── accordion_arrows.png │ │ │ │ │ │ │ ├── calendar_arrows.png │ │ │ │ │ │ │ ├── datagrid_icons.png │ │ │ │ │ │ │ ├── messager_icons.png │ │ │ │ │ │ │ ├── pagination_icons.png │ │ │ │ │ │ │ ├── passwordbox_open.png │ │ │ │ │ │ │ ├── searchbox_button.png │ │ │ │ │ │ │ ├── spinner_arrows.png │ │ │ │ │ │ │ ├── passwordbox_close.png │ │ │ │ │ │ │ └── validatebox_warning.png │ │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ │ ├── validatebox.css │ │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ │ └── filebox.css │ │ │ │ │ │ └── icons │ │ │ │ │ │ ├── no.png │ │ │ │ │ │ ├── ok.png │ │ │ │ │ │ ├── back.png │ │ │ │ │ │ ├── cut.png │ │ │ │ │ │ ├── help.png │ │ │ │ │ │ ├── lock.png │ │ │ │ │ │ ├── man.png │ │ │ │ │ │ ├── more.png │ │ │ │ │ │ ├── redo.png │ │ │ │ │ │ ├── sum.png │ │ │ │ │ │ ├── tip.png │ │ │ │ │ │ ├── undo.png │ │ │ │ │ │ ├── blank.gif │ │ │ │ │ │ ├── cancel.png │ │ │ │ │ │ ├── clear.png │ │ │ │ │ │ ├── filter.png │ │ │ │ │ │ ├── pencil.png │ │ │ │ │ │ ├── print.png │ │ │ │ │ │ ├── reload.png │ │ │ │ │ │ ├── search.png │ │ │ │ │ │ ├── edit_add.png │ │ │ │ │ │ ├── filesave.png │ │ │ │ │ │ ├── mini_add.png │ │ │ │ │ │ ├── mini_edit.png │ │ │ │ │ │ ├── edit_remove.png │ │ │ │ │ │ ├── large_chart.png │ │ │ │ │ │ ├── large_shapes.png │ │ │ │ │ │ ├── mini_refresh.png │ │ │ │ │ │ ├── large_clipart.png │ │ │ │ │ │ ├── large_picture.png │ │ │ │ │ │ └── large_smartart.png │ │ │ │ └── sql │ │ │ │ │ └── data.sql │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── web │ │ │ │ └── IndexController.java │ │ ├── react │ │ │ ├── frontend │ │ │ │ ├── src │ │ │ │ │ ├── views │ │ │ │ │ │ └── pages │ │ │ │ │ │ │ ├── user │ │ │ │ │ │ │ └── User.less │ │ │ │ │ │ │ └── login │ │ │ │ │ │ │ ├── bg.jpg │ │ │ │ │ │ │ └── login-logo.png │ │ │ │ │ ├── components │ │ │ │ │ │ ├── layout │ │ │ │ │ │ │ ├── Content │ │ │ │ │ │ │ │ └── Content.less │ │ │ │ │ │ │ ├── Breadcrumb │ │ │ │ │ │ │ │ └── Breadcrumb.less │ │ │ │ │ │ │ ├── Footer │ │ │ │ │ │ │ │ └── index.less │ │ │ │ │ │ │ └── Header │ │ │ │ │ │ │ │ └── Header.less │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── webapi │ │ │ │ │ │ ├── mock │ │ │ │ │ │ │ └── user.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── webapi.js │ │ │ │ │ ├── containers │ │ │ │ │ │ ├── Core │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── CoreContainer.less │ │ │ │ │ │ └── Root │ │ │ │ │ │ │ └── RootContainer.jsx │ │ │ │ │ ├── utils │ │ │ │ │ │ └── index.jsx │ │ │ │ │ └── redux │ │ │ │ │ │ ├── constants │ │ │ │ │ │ └── menuActionType.js │ │ │ │ │ │ ├── reducers │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── actions │ │ │ │ │ │ └── menu.js │ │ │ │ │ │ └── store │ │ │ │ │ │ └── configureStore.js │ │ │ │ ├── public │ │ │ │ │ └── favicon.ico │ │ │ │ ├── scripts │ │ │ │ │ └── build.sh │ │ │ │ ├── .gitignore │ │ │ │ └── config │ │ │ │ │ └── app.config.js │ │ │ └── backend │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── application.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── web │ │ │ │ └── WebReactApplication.java │ │ └── bootstrap │ │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── static │ │ │ │ └── favicon.ico │ │ │ ├── application.properties │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── MessageRepository.java │ ├── sse │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── sse │ │ │ └── WebSseApplication.java │ ├── basic │ │ ├── helloworld │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ │ └── WEB-INF │ │ │ │ └── views │ │ │ │ └── jsp │ │ │ │ ├── index.jsp │ │ │ │ ├── error │ │ │ │ ├── 403.jsp │ │ │ │ └── 404.jsp │ │ │ │ ├── taglibs.jsp │ │ │ │ ├── hello.jsp │ │ │ │ ├── log.jsp │ │ │ │ └── welcome.jsp │ │ └── mvc │ │ │ └── src │ │ │ └── main │ │ │ ├── webapp │ │ │ ├── resources │ │ │ │ ├── messages │ │ │ │ │ ├── info.png │ │ │ │ │ ├── error.png │ │ │ │ │ ├── success.png │ │ │ │ │ └── warning.png │ │ │ │ └── jqueryui │ │ │ │ │ └── 1.8 │ │ │ │ │ └── themes │ │ │ │ │ └── base │ │ │ │ │ ├── images │ │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ │ │ ├── ui-icons_454545_256x240.png │ │ │ │ │ ├── ui-icons_888888_256x240.png │ │ │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ │ │ └── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ │ │ ├── jquery.ui.all.css │ │ │ │ │ └── jquery.ui.base.css │ │ │ └── WEB-INF │ │ │ │ └── views │ │ │ │ ├── views │ │ │ │ ├── html.jsp │ │ │ │ ├── viewName.jsp │ │ │ │ └── dataBinding.jsp │ │ │ │ └── redirect │ │ │ │ └── redirectResults.jsp │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── mvc │ │ │ ├── exceptions │ │ │ ├── BusinessException.java │ │ │ └── GlobalExceptionHandler.java │ │ │ ├── form │ │ │ └── InquiryType.java │ │ │ ├── simple │ │ │ └── SimpleController.java │ │ │ ├── data │ │ │ └── custom │ │ │ │ └── RequestAttribute.java │ │ │ └── convert │ │ │ └── MaskFormat.java │ ├── form │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── templates │ │ │ │ ├── welcome.html │ │ │ │ └── results.html │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── form │ │ │ ├── entity │ │ │ └── Greeting.java │ │ │ └── WebFormApplication.java │ ├── helloworld │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── application.properties │ │ │ ├── static │ │ │ │ └── index.html │ │ │ ├── templates │ │ │ │ └── greeting.html │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── helloworld │ │ │ ├── HelloController.java │ │ │ └── WebHelloWorldApplication.java │ ├── https │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── keystore.p12 │ │ │ ├── application.properties │ │ │ ├── static │ │ │ │ └── index.html │ │ │ ├── templates │ │ │ │ └── greeting.html │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── https │ │ │ └── entity │ │ │ ├── CityInfo.java │ │ │ └── Weather.java │ ├── connections │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── sample.jks │ │ │ ├── application.properties │ │ │ ├── static │ │ │ │ └── index.html │ │ │ ├── templates │ │ │ │ └── greeting.html │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── connections │ │ │ └── entity │ │ │ ├── CityInfo.java │ │ │ └── Weather.java │ ├── websocket │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── web │ │ │ │ └── websocket │ │ │ │ ├── client │ │ │ │ ├── GreetingService.java │ │ │ │ └── SimpleGreetingService.java │ │ │ │ ├── echo │ │ │ │ ├── EchoService.java │ │ │ │ └── DefaultEchoService.java │ │ │ │ └── snake │ │ │ │ └── Direction.java │ │ │ └── resources │ │ │ └── logback.xml │ ├── README.md │ ├── fastjson │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── fastjson │ │ │ ├── SpringBootWebFastjsonApplication.java │ │ │ └── InfoDto.java │ └── client │ │ └── src │ │ └── main │ │ ├── java │ │ └── example │ │ │ └── spring │ │ │ └── web │ │ │ └── client │ │ │ └── entity │ │ │ ├── CityInfo.java │ │ │ └── Weather.java │ │ └── resources │ │ └── logback.xml ├── integration │ ├── distributed │ │ ├── spring-boot-zookeeper │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── spring-boot-dubbo │ │ │ ├── README.md │ │ │ ├── spring-boot-dubbo-autoconfig-consumer │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ │ ├── spring-boot-dubbo-api │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ └── dubbo │ │ │ │ └── api │ │ │ │ ├── InfoService.java │ │ │ │ └── InfoDto.java │ │ │ └── spring-boot-dubbo-zookeeper-consumer │ │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── application.properties │ ├── spring-boot-docker │ │ ├── src │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── docker-entrypoint.sh │ ├── template │ │ ├── spring-boot-tmpl-jsp │ │ │ ├── src │ │ │ │ └── main │ │ │ │ │ ├── resources │ │ │ │ │ ├── static │ │ │ │ │ │ └── test.txt │ │ │ │ │ └── application.properties │ │ │ │ │ ├── webapp │ │ │ │ │ └── WEB-INF │ │ │ │ │ │ └── jsp │ │ │ │ │ │ └── error.jsp │ │ │ │ │ └── java │ │ │ │ │ └── io │ │ │ │ │ └── github │ │ │ │ │ └── dunwu │ │ │ │ │ └── springboot │ │ │ │ │ ├── web │ │ │ │ │ ├── MyException.java │ │ │ │ │ ├── MyRestResponse.java │ │ │ │ │ └── MessageAdvice.java │ │ │ │ │ └── SpringBootWebJspApplication.java │ │ │ └── README.md │ │ ├── spring-boot-tmpl-freemark │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ ├── templates │ │ │ │ ├── sql │ │ │ │ │ ├── sql_clear.ftl │ │ │ │ │ ├── sql_select.ftl │ │ │ │ │ ├── sql_delete.ftl │ │ │ │ │ ├── drop_table.ftl │ │ │ │ │ ├── sql_create.ftl │ │ │ │ │ └── create_table.ftl │ │ │ │ └── web │ │ │ │ │ └── exception.ftl │ │ │ │ └── application.properties │ │ ├── spring-boot-tmpl-thymeleaf │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application.properties │ │ │ │ └── templates │ │ │ │ │ └── error.html │ │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ ├── exception │ │ │ │ └── MyException.java │ │ │ │ └── SpringBootTmplThymeleafApplication.java │ │ └── spring-boot-tmpl-velocity │ │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ ├── velocity.properties │ │ │ ├── layout │ │ │ ├── default.vm │ │ │ ├── layout.vm │ │ │ └── layout2.vm │ │ │ └── templates │ │ │ └── velocity │ │ │ └── default │ │ │ ├── header.vm │ │ │ └── tools.vm │ ├── spring-boot-logging │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── application-log4j.properties │ │ │ ├── application-log4j2.properties │ │ │ ├── application-logback.properties │ │ │ └── application.properties │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── springboot │ │ │ └── logging │ │ │ └── web │ │ │ └── HelloController.java │ ├── spring-boot-mail │ │ └── src │ │ │ ├── main │ │ │ ├── resources │ │ │ │ ├── application.properties │ │ │ │ ├── application-163.properties │ │ │ │ └── application-qq.properties │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ └── mail │ │ │ │ └── MailApplication.java │ │ │ └── test │ │ │ └── resources │ │ │ ├── moon.png │ │ │ └── icon-man.png │ ├── spring-integration-scheduler │ │ └── src │ │ │ └── main │ │ │ ├── webapp │ │ │ └── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── spring │ │ │ └── scheduler │ │ │ └── DemoTask.java │ ├── spring-integration-swagger │ │ ├── swagger-ui.png │ │ └── README.md │ ├── mq │ │ ├── spring-boot-mq-redis │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── spring-boot-mq-rabbitmq │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── application.properties │ │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ └── RabbitConfiguration.java │ │ ├── spring-boot-mq-activemq │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── spring-boot-mq-kafka │ │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ └── SpringBootMsgKafkaApplication.java │ │ │ └── test │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── springboot │ │ │ └── KafkaTestBean.java │ ├── spring-boot-statemachine │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── springboot │ │ │ └── statemachine │ │ │ ├── Events.java │ │ │ └── States.java │ ├── spring-integration-libs │ │ ├── src │ │ │ ├── test │ │ │ │ └── java │ │ │ │ │ └── io │ │ │ │ │ └── github │ │ │ │ │ └── dunwu │ │ │ │ │ └── spring │ │ │ │ │ └── libs │ │ │ │ │ └── dozer │ │ │ │ │ └── vo │ │ │ │ │ ├── Status.java │ │ │ │ │ ├── StatusPrime.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── Info.java │ │ │ │ │ ├── UserGroup.java │ │ │ │ │ ├── UserPrime.java │ │ │ │ │ ├── UserGroupPrime.java │ │ │ │ │ ├── Dest.java │ │ │ │ │ └── Source.java │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── spring │ │ │ │ └── libs │ │ │ │ └── lombok │ │ │ │ └── Person.java │ │ └── support │ │ │ └── logstash.conf │ ├── spring-integration-rmi │ │ ├── spring-integration-rmi-client │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── spring │ │ │ │ └── rmi │ │ │ │ └── service │ │ │ │ └── MessageProvider.java │ │ └── spring-integration-rmi-server │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── spring │ │ │ └── rmi │ │ │ └── service │ │ │ ├── MessageProvider.java │ │ │ └── MessageProviderImpl.java │ ├── spring-boot-test-junit5 │ │ └── src │ │ │ ├── test │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ ├── DisabledClassDemo.java │ │ │ │ └── DisabledTestsDemo.java │ │ │ └── main │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── springboot │ │ │ ├── HelloService.java │ │ │ └── TestJunit5Application.java │ ├── spring-integration-rpc │ │ ├── spring-integration-rpc-api │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── spring │ │ │ │ └── dubbo │ │ │ │ └── api │ │ │ │ └── HelloProvider.java │ │ ├── spring-integration-rpc-consumer │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── log4j.properties │ │ └── spring-integration-rpc-provider │ │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── log4j.properties │ ├── README.md │ └── spring-boot-scheduling-quartz │ │ └── src │ │ └── main │ │ └── resources │ │ └── application.properties ├── security │ ├── spring-security-shiro │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── properties │ │ │ │ └── application.properties │ │ │ ├── webapp │ │ │ ├── META-INF │ │ │ │ └── MANIFEST.MF │ │ │ └── index.jsp │ │ │ └── java │ │ │ └── io │ │ │ └── github │ │ │ └── dunwu │ │ │ └── spring │ │ │ └── security │ │ │ └── shiro │ │ │ ├── dao │ │ │ └── PermissionDao.java │ │ │ └── service │ │ │ └── PermissionService.java │ ├── README.md │ ├── spring-boot-security-session │ │ ├── README.md │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ └── security │ │ │ │ ├── filter │ │ │ │ └── DunwuSecurityException.java │ │ │ │ └── mapper │ │ │ │ └── AccountMapper.java │ │ │ └── resources │ │ │ └── sql │ │ │ └── data.sql │ ├── spring-boot-security-ldap │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── application.properties │ ├── spring-boot-security-checkcode │ │ ├── README.md │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── io │ │ │ │ └── github │ │ │ │ └── dunwu │ │ │ │ └── springboot │ │ │ │ └── security │ │ │ │ ├── filter │ │ │ │ └── DunwuSecurityException.java │ │ │ │ └── mapper │ │ │ │ └── AccountMapper.java │ │ │ └── resources │ │ │ └── sql │ │ │ └── data.sql │ └── spring-boot-security-authentication │ │ └── README.md ├── data │ ├── cache │ │ ├── j2cache │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── resources │ │ │ │ │ ├── application.properties │ │ │ │ │ ├── META-INF │ │ │ │ │ │ ├── spring-configuration-metadata.json │ │ │ │ │ │ └── spring.factories │ │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ │ └── example │ │ │ │ │ └── spring │ │ │ │ │ └── data │ │ │ │ │ └── cache │ │ │ │ │ └── J2cacheApplication.java │ │ │ │ └── test │ │ │ │ ├── resources │ │ │ │ └── application.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── cache │ │ │ │ └── TestBean.java │ │ ├── basics │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ ├── sql │ │ │ │ └── data.sql │ │ │ │ └── logback.xml │ │ └── jetcache │ │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ ├── sql │ │ │ └── data.sql │ │ │ └── logback.xml │ ├── jdbc │ │ ├── xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ ├── properties │ │ │ │ ├── h2.properties │ │ │ │ └── mysql.properties │ │ │ │ └── sql │ │ │ │ └── data.sql │ │ ├── basics │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── sql │ │ │ │ │ └── data.sql │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── jdbc │ │ │ │ └── UserDaoTxService.java │ │ ├── druid │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ ├── sql │ │ │ │ └── data.sql │ │ │ │ └── logback.xml │ │ └── multi-datasource │ │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ ├── sql │ │ │ └── data.sql │ │ │ └── logback.xml │ ├── nosql │ │ ├── hbase │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ └── application.properties │ │ ├── basics │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── resources │ │ │ │ ├── properties │ │ │ │ ├── redis.properties │ │ │ │ └── elasticsearch.properties │ │ │ │ └── logback.xml │ │ ├── redis │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── example │ │ │ │ │ │ └── spring │ │ │ │ │ │ └── data │ │ │ │ │ │ └── nosql │ │ │ │ │ │ └── redis │ │ │ │ │ │ ├── quickstart │ │ │ │ │ │ ├── Location.java │ │ │ │ │ │ └── UserService.java │ │ │ │ │ │ └── reactive │ │ │ │ │ │ └── Coffee.java │ │ │ │ └── resources │ │ │ │ │ ├── application-single.properties │ │ │ │ │ ├── application-sentinel.properties │ │ │ │ │ └── logback.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── nosql │ │ │ │ └── redis │ │ │ │ └── cluster │ │ │ │ └── RedisClusterApplication.java │ │ ├── mongodb │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application.properties │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── nosql │ │ │ │ └── mongodb │ │ │ │ ├── entity │ │ │ │ ├── CustomerDto.java │ │ │ │ └── Address.java │ │ │ │ └── repository │ │ │ │ └── RoleRepository.java │ │ └── elasticsearch │ │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── data │ │ │ └── nosql │ │ │ └── elasticsearch │ │ │ ├── service │ │ │ └── CustomersInterface.java │ │ │ └── DataElasticsearchApplication.java │ ├── orm │ │ ├── mybatis-mapper │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── mapper │ │ │ │ │ ├── CityMapper.xml │ │ │ │ │ └── CountryMapper.xml │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── orm │ │ │ │ └── mybatis │ │ │ │ ├── mapper │ │ │ │ ├── CityMapper.java │ │ │ │ ├── UserInfoMapper.java │ │ │ │ └── CountryMapper.java │ │ │ │ └── util │ │ │ │ └── MyMapper.java │ │ ├── mybatis │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── example │ │ │ │ │ └── spring │ │ │ │ │ └── data │ │ │ │ │ └── orm │ │ │ │ │ └── mybatis │ │ │ │ │ ├── dao │ │ │ │ │ └── UserDAO.java │ │ │ │ │ └── mapper │ │ │ │ │ ├── UserMapper.java │ │ │ │ │ ├── OrderMapper.java │ │ │ │ │ └── ProductMapper.java │ │ │ │ └── resources │ │ │ │ ├── sql │ │ │ │ └── data.sql │ │ │ │ └── properties │ │ │ │ └── db.properties │ │ ├── mybatis-multi-datasource │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── orm │ │ │ │ └── mybatis │ │ │ │ └── mapper │ │ │ │ ├── Db1UserMapper.java │ │ │ │ └── Db2UserMapper.java │ │ ├── mybatis-plus │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ ├── application.properties │ │ │ │ ├── sql │ │ │ │ │ └── data-h2.sql │ │ │ │ └── logback.xml │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── data │ │ │ │ └── orm │ │ │ │ └── mybatis │ │ │ │ └── mapper │ │ │ │ ├── User2Mapper.java │ │ │ │ └── UserMapper.java │ │ └── jpa │ │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ ├── sql │ │ │ └── data.sql │ │ │ └── logback.xml │ └── middleware │ │ ├── sharding │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ ├── application.properties │ │ │ ├── sql │ │ │ │ └── clear.sql │ │ │ └── logback.xml │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── data │ │ │ └── middleware │ │ │ └── sharding │ │ │ └── mapper │ │ │ └── UserMapper.java │ │ └── flyway │ │ └── src │ │ └── main │ │ └── resources │ │ ├── sql │ │ └── V2__Add_user.sql │ │ ├── logback.xml │ │ └── application.properties └── distributed │ ├── trace │ ├── opentelemetry │ │ ├── http │ │ │ ├── client │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ └── server │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── resources │ │ │ │ └── application.properties │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── trace │ │ │ │ └── opentelemetry │ │ │ │ └── OpenTelemetryPropagationServerApplication.java │ │ └── async │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── trace │ │ │ └── opentelemetry │ │ │ └── DemoService.java │ └── sleuth │ │ ├── sleuth-sample │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── application.properties │ │ ├── sleuth-web │ │ └── src │ │ │ └── main │ │ │ └── resources │ │ │ └── application.properties │ │ ├── sleuth-websocket │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── application.properties │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── trace │ │ │ └── sleuth │ │ │ └── entity │ │ │ ├── HelloMessage.java │ │ │ └── Greeting.java │ │ ├── sleuth-opentracing │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── application.properties │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── trace │ │ │ └── sleuth │ │ │ └── SleuthOpenTracingApplication.java │ │ ├── sleuth-feign │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── application.properties │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── trace │ │ │ └── sleuth │ │ │ ├── SampleFeignClient.java │ │ │ └── SleuthFeignApplication.java │ │ ├── sleuth-mq-rabbitmq │ │ ├── producer │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── example │ │ │ │ └── spring │ │ │ │ └── trace │ │ │ │ └── sleuth │ │ │ │ └── rmq │ │ │ │ └── MySource.java │ │ └── consumer │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── trace │ │ │ └── sleuth │ │ │ └── rmq │ │ │ └── MySink.java │ │ └── sleuth-mq-kafka │ │ ├── producer │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── example │ │ │ └── spring │ │ │ └── trace │ │ │ └── sleuth │ │ │ └── kafka │ │ │ └── MySource.java │ │ └── consumer │ │ └── src │ │ └── main │ │ └── java │ │ └── example │ │ └── spring │ │ └── trace │ │ └── sleuth │ │ └── kafka │ │ └── MySink.java │ └── ratelimit │ └── sentinel │ ├── consumer │ └── src │ │ └── main │ │ ├── resources │ │ └── application.properties │ │ └── java │ │ └── example │ │ └── spring │ │ └── ratelimit │ │ └── sentinel │ │ └── dubbo │ │ └── DubboConsumerService.java │ ├── provider │ └── src │ │ └── main │ │ └── resources │ │ └── application.properties │ └── api │ └── src │ └── main │ └── java │ └── example │ └── spring │ └── ratelimit │ └── sentinel │ └── dubbo │ └── DubboProviderService.java ├── settings └── README.md ├── prettier.config.js └── utils └── config.yml /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "compact": false 3 | } 4 | -------------------------------------------------------------------------------- /docs/.vuepress/config/baiduCode.js: -------------------------------------------------------------------------------- 1 | module.exports = '' 2 | -------------------------------------------------------------------------------- /codes/core/ioc/src/main/resources/META-INF/user-config.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /codes/web/multipart/src/test/resources/testupload.txt: -------------------------------------------------------------------------------- 1 | Spring Framework -------------------------------------------------------------------------------- /codes/core/resource/src/main/resources/META-INF/dev.properties: -------------------------------------------------------------------------------- 1 | env = 开发环境 2 | -------------------------------------------------------------------------------- /codes/core/resource/src/main/resources/META-INF/prod.properties: -------------------------------------------------------------------------------- 1 | env = 生产环境 2 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/plugin/themes/default/numberbox.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /settings/README.md: -------------------------------------------------------------------------------- 1 | # 说明 2 | 3 | > 本目录下存放本项目运行时可能需要用到的一些环境配置。(使用本项目时可以参考我的配置) 4 | -------------------------------------------------------------------------------- /codes/integration/distributed/spring-boot-zookeeper/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /codes/security/spring-security-shiro/src/main/resources/properties/application.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/numberbox.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/Spring环境配置.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/Spring环境配置.docx -------------------------------------------------------------------------------- /codes/integration/spring-boot-docker/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = 8080 2 | -------------------------------------------------------------------------------- /codes/web/sse/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.async.request-timeout = 30000 2 | -------------------------------------------------------------------------------- /docs/@pages/tagsPage.md: -------------------------------------------------------------------------------- 1 | --- 2 | tagsPage: true 3 | title: 标签 4 | permalink: /tags/ 5 | article: false 6 | --- -------------------------------------------------------------------------------- /codes/web/basic/helloworld/src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /codes/data/cache/j2cache/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | j2cache.config-location = j2cache.properties 2 | -------------------------------------------------------------------------------- /codes/distributed/trace/opentelemetry/http/client/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = 8081 2 | -------------------------------------------------------------------------------- /codes/distributed/trace/opentelemetry/http/server/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = 8080 2 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-jsp/src/main/resources/static/test.txt: -------------------------------------------------------------------------------- 1 | Example - Spring Boot + Jsp 2 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/views/pages/user/User.less: -------------------------------------------------------------------------------- 1 | .user-view-row { 2 | padding-bottom: 15px; 3 | } 4 | -------------------------------------------------------------------------------- /codes/core/profile/src/main/resources/application-dev.properties: -------------------------------------------------------------------------------- 1 | dunwu.message = The app is running on profile dev. 2 | -------------------------------------------------------------------------------- /codes/core/profile/src/main/resources/application-prod.properties: -------------------------------------------------------------------------------- 1 | dunwu.message = The app is running on profile prod. 2 | -------------------------------------------------------------------------------- /codes/core/profile/src/main/resources/application-test.properties: -------------------------------------------------------------------------------- 1 | dunwu.message = The app is running on profile test. 2 | -------------------------------------------------------------------------------- /codes/core/property/src/main/resources/prop/validator.properties: -------------------------------------------------------------------------------- 1 | validator.host = 127.0.0.1 2 | validator.port = 8080 3 | -------------------------------------------------------------------------------- /codes/data/cache/j2cache/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | j2cache.config-location = j2cache-test.properties 2 | -------------------------------------------------------------------------------- /codes/security/spring-security-shiro/src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /codes/web/form/src/main/resources/templates/welcome.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 欢迎访问! 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /docs/.vuepress/public/img/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/.vuepress/public/img/bg.gif -------------------------------------------------------------------------------- /docs/@pages/archivesPage.md: -------------------------------------------------------------------------------- 1 | --- 2 | archivesPage: true 3 | title: 归档 4 | permalink: /archives/ 5 | article: false 6 | --- -------------------------------------------------------------------------------- /codes/integration/spring-boot-logging/src/main/resources/application-log4j.properties: -------------------------------------------------------------------------------- 1 | logging.config = classpath:log4j.xml 2 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-logging/src/main/resources/application-log4j2.properties: -------------------------------------------------------------------------------- 1 | logging.config = classpath:log4j2.xml 2 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-mail/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | debug = true 2 | spring.profiles.active = qq 3 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-freemark/src/main/resources/templates/sql/sql_clear.ftl: -------------------------------------------------------------------------------- 1 | DELETE FROM ${tableName} 2 | -------------------------------------------------------------------------------- /docs/.vuepress/public/img/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/.vuepress/public/img/more.png -------------------------------------------------------------------------------- /docs/.vuepress/public/img/other.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/.vuepress/public/img/other.png -------------------------------------------------------------------------------- /docs/@pages/categoriesPage.md: -------------------------------------------------------------------------------- 1 | --- 2 | categoriesPage: true 3 | title: 分类 4 | permalink: /categories/ 5 | article: false 6 | --- -------------------------------------------------------------------------------- /codes/core/property/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.profiles.active = prop 2 | #spring.profiles.active = yaml 3 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-logging/src/main/resources/application-logback.properties: -------------------------------------------------------------------------------- 1 | logging.config = classpath:logback.xml 2 | -------------------------------------------------------------------------------- /codes/integration/spring-integration-scheduler/src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-freemark/src/main/resources/templates/sql/sql_select.ftl: -------------------------------------------------------------------------------- 1 | SELECT * FROM ${tableName} 2 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-thymeleaf/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.thymeleaf.cache = false 2 | -------------------------------------------------------------------------------- /codes/web/multipart/README.md: -------------------------------------------------------------------------------- 1 | # SpringBootTutorial :: Web :: Uploading 2 | 3 | > 源自:https://spring.io/guides/gs/uploading-files/ 4 | -------------------------------------------------------------------------------- /docs/.vuepress/public/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/.vuepress/public/img/favicon.ico -------------------------------------------------------------------------------- /codes/core/property/src/main/resources/prop/custom.properties: -------------------------------------------------------------------------------- 1 | custom.topic1 = Java 2 | custom.topic2 = [${custom.topic1}] Spring Boot 3 | -------------------------------------------------------------------------------- /codes/web/helloworld/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = 8080 2 | spring.jackson.date-format = yyyy-MM-dd HH:mm:ss 3 | -------------------------------------------------------------------------------- /docs/.vuepress/public/img/dunwu-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/docs/.vuepress/public/img/dunwu-logo.png -------------------------------------------------------------------------------- /codes/integration/spring-boot-logging/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = 8080 2 | spring.profiles.active = logback 3 | -------------------------------------------------------------------------------- /codes/core/ioc/src/main/resources/META-INF/services/example.spring.core.bean.life.UserFactory: -------------------------------------------------------------------------------- 1 | example.spring.core.bean.life.DefaultUserFactory 2 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-freemark/src/main/resources/templates/sql/sql_delete.ftl: -------------------------------------------------------------------------------- 1 | DELETE FROM ${tableName} WHERE NAME = ${name} 2 | -------------------------------------------------------------------------------- /codes/web/https/src/main/resources/keystore.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/https/src/main/resources/keystore.p12 -------------------------------------------------------------------------------- /codes/web/view/react/backend/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = 9527 2 | spring.jackson.default-property-inclusion = non_null 3 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/react/frontend/public/favicon.ico -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/components/layout/Content/Content.less: -------------------------------------------------------------------------------- 1 | .ant-layout-content { 2 | background: #fff; 3 | padding: 24px; 4 | } 5 | -------------------------------------------------------------------------------- /codes/core/async/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.file.path = spring-boot-asyn.log 2 | logging.pattern.dateformat = yyyy-MM-dd HH:mm:ss 3 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/webapi/mock/user.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | code: 0, msg: ['成功'], data: {uid: '1', role: 'ADMIN', name: 'admin'} 3 | }; 4 | -------------------------------------------------------------------------------- /codes/web/connections/src/main/resources/sample.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/connections/src/main/resources/sample.jks -------------------------------------------------------------------------------- /codes/distributed/trace/sleuth/sleuth-sample/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name = sleuth-sample 2 | spring.sleuth.web.enabled = true 3 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-freemark/src/main/resources/templates/sql/drop_table.ftl: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `${table.database}`.`${table.tableName}`; 2 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/webapi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webapi", 3 | "version": "0.0.0", 4 | "private": true, 5 | "main": "./webapi.js" 6 | } 7 | -------------------------------------------------------------------------------- /codes/data/jdbc/xml/src/main/resources/properties/h2.properties: -------------------------------------------------------------------------------- 1 | jdbc.url = jdbc:h2:mem:test 2 | jdbc.driver = org.h2.Driver 3 | jdbc.username = sa 4 | jdbc.password = 5 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/views/pages/login/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/react/frontend/src/views/pages/login/bg.jpg -------------------------------------------------------------------------------- /codes/integration/spring-integration-swagger/swagger-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/integration/spring-integration-swagger/swagger-ui.png -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-freemark/src/main/resources/templates/sql/sql_create.ftl: -------------------------------------------------------------------------------- 1 | INSERT INTO ${tableName}(${key1}, ${key2}) VALUES(${value1}, ${value2}) 2 | -------------------------------------------------------------------------------- /codes/core/ioc/src/main/java/example/spring/core/bean/java/Job.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.bean.java; 2 | 3 | public interface Job { 4 | 5 | String work(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-mail/src/test/resources/moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/integration/spring-boot-mail/src/test/resources/moon.png -------------------------------------------------------------------------------- /codes/web/basic/mvc/src/main/webapp/resources/messages/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/basic/mvc/src/main/webapp/resources/messages/info.png -------------------------------------------------------------------------------- /codes/web/view/bootstrap/src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/bootstrap/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /codes/core/ioc/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port = ${random.int[1000,65536]} 2 | server.tomcat.max-threads = 20 3 | management.endpoints.web.exposure.include = * 4 | -------------------------------------------------------------------------------- /codes/integration/distributed/spring-boot-dubbo/README.md: -------------------------------------------------------------------------------- 1 | # Spring Boot + Dubbo 2 | 3 | > 搬迁 **[ dubbo-spring-boot-project](https://github.com/apache/dubbo-spring-boot-project)** 示例 4 | -------------------------------------------------------------------------------- /codes/web/basic/mvc/src/main/webapp/resources/messages/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/basic/mvc/src/main/webapp/resources/messages/error.png -------------------------------------------------------------------------------- /codes/data/nosql/hbase/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | dunwu.data.hbase.enabled = true 2 | dunwu.data.hbase.zookeeper.quorum = localhost 3 | dunwu.data.hbase.zookeeper.port = 2181 4 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-mail/src/test/resources/icon-man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/integration/spring-boot-mail/src/test/resources/icon-man.png -------------------------------------------------------------------------------- /codes/web/basic/mvc/src/main/webapp/resources/messages/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/basic/mvc/src/main/webapp/resources/messages/success.png -------------------------------------------------------------------------------- /codes/web/basic/mvc/src/main/webapp/resources/messages/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/basic/mvc/src/main/webapp/resources/messages/warning.png -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/containers/Core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CoreContainer", 3 | "version": "0.0.0", 4 | "private": true, 5 | "main": "./CoreContainer.jsx" 6 | } 7 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/views/pages/login/login-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/react/frontend/src/views/pages/login/login-logo.png -------------------------------------------------------------------------------- /codes/core/aop/src/main/java/example/spring/core/aop/entity/Performer.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.aop.entity; 2 | 3 | public interface Performer { 4 | 5 | String perform(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-docker/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #-e:若指令传回值不等于0,则立即退出shell。 4 | #-u:当执行时使用到未定义过的变量,则显示错误信息。 5 | #-x:执行指令后,会先显示该指令及所下的参数。 6 | set -eux; 7 | exec "$@" 8 | -------------------------------------------------------------------------------- /codes/core/actuator/README.md: -------------------------------------------------------------------------------- 1 | # Spring Actuator 示例 2 | 3 | 执行 `io.github.dunwu.springboot.actuator.SpringBootActuatorApplication ` 类 `main` 方法。 4 | 5 | 访问 http://localhost:18080/actuator 可以查看监控信息。 6 | -------------------------------------------------------------------------------- /codes/integration/mq/spring-boot-mq-redis/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.redis.host = 127.0.0.1 2 | spring.redis.port = 6379 3 | spring.redis.password = 4 | spring.redis.database = 0 5 | -------------------------------------------------------------------------------- /codes/integration/template/spring-boot-tmpl-jsp/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.mvc.view.prefix = /WEB-INF/jsp/ 2 | spring.mvc.view.suffix = .jsp 3 | application.message = Hello World 4 | -------------------------------------------------------------------------------- /codes/core/profile/src/main/java/example/spring/core/profile/MessageService.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.profile; 2 | 3 | public interface MessageService { 4 | 5 | String getMessage(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/distributed/trace/sleuth/sleuth-web/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name = sleuth-web 2 | spring.zipkin.base-url = http://127.0.0.1:9411 3 | spring.sleuth.web.enabled = true 4 | -------------------------------------------------------------------------------- /codes/web/multipart/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.servlet.multipart.enabled = true 2 | spring.servlet.multipart.max-file-size = 128KB 3 | spring.servlet.multipart.max-request-size = 128KB 4 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/no.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/ok.png -------------------------------------------------------------------------------- /codes/data/nosql/basics/src/main/resources/properties/redis.properties: -------------------------------------------------------------------------------- 1 | # Redis settings 2 | redis.host = localhost 3 | redis.port = 6379 4 | redis.pass = root 5 | redis.maxIdle = 300 6 | redis.testOnBorrow = true 7 | -------------------------------------------------------------------------------- /codes/web/basic/helloworld/src/main/webapp/WEB-INF/views/jsp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html; charset=UTF-8" %> 2 | <%@ include file="/WEB-INF/views/jsp/taglibs.jsp" %> 3 |原则上工具类都要在此注册,然后提供给外部模块
5 | * @author Zhang Peng 6 | */ 7 | 8 | export {default as authHOC} from './authHOC' 9 | -------------------------------------------------------------------------------- /codes/core/ioc/src/main/java/example/spring/core/bean/annotation/Performer.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.bean.annotation; 2 | 3 | public interface Performer { 4 | 5 | String perform() throws Exception; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/core/ioc/src/main/java/example/spring/core/bean/annotation/instrument/Instrument.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.bean.annotation.instrument; 2 | 3 | public interface Instrument { 4 | 5 | void play(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/integration/distributed/spring-boot-dubbo/spring-boot-dubbo-autoconfig-consumer/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Spring boot application 2 | spring.application.name = spring-boot-dubbo-autoconfig-consumer 3 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/edit_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/edit_add.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/filesave.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/mini_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/mini_add.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/mini_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/mini_edit.png -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/components/layout/Breadcrumb/Breadcrumb.less: -------------------------------------------------------------------------------- 1 | .ant-layout-breadcrumb { 2 | z-index: 200; 3 | line-height: 64px; 4 | 5 | .ant-breadcrumb-link { 6 | font-size: 16px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /codes/web/view/react/frontend/src/webapi/webapi.js: -------------------------------------------------------------------------------- 1 | if (process.env.NODE_ENV === 'development') { 2 | module.exports = require('./mock').default 3 | } else { 4 | module.exports = require('../utils/http').default 5 | } 6 | -------------------------------------------------------------------------------- /codes/data/cache/j2cache/src/main/resources/META-INF/spring-configuration-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "properties": [ 3 | { 4 | "name": "j2cache.config-location", 5 | "type": "java.lang.String" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /codes/integration/mq/spring-boot-mq-rabbitmq/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.rabbitmq.host = 127.0.0.1 2 | spring.rabbitmq.port = 5672 3 | spring.rabbitmq.username = guest 4 | spring.rabbitmq.password = guest 5 | -------------------------------------------------------------------------------- /codes/integration/spring-boot-statemachine/src/main/java/io/github/dunwu/springboot/statemachine/States.java: -------------------------------------------------------------------------------- 1 | package io.github.dunwu.springboot.statemachine; 2 | 3 | public enum States { 4 | SI, 5 | S1, 6 | S2 7 | } 8 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/edit_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/edit_remove.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_chart.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_shapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_shapes.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/mini_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/mini_refresh.png -------------------------------------------------------------------------------- /codes/web/websocket/src/main/java/example/spring/web/websocket/client/GreetingService.java: -------------------------------------------------------------------------------- 1 | package example.spring.web.websocket.client; 2 | 3 | public interface GreetingService { 4 | 5 | String getGreeting(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/web/websocket/src/main/java/example/spring/web/websocket/echo/EchoService.java: -------------------------------------------------------------------------------- 1 | package example.spring.web.websocket.echo; 2 | 3 | public interface EchoService { 4 | 5 | String getMessage(String message); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_clipart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_clipart.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_picture.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_smartart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/icons/large_smartart.png -------------------------------------------------------------------------------- /codes/core/ioc/src/main/java/example/spring/core/bean/annotation/autowire/Performer.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.bean.annotation.autowire; 2 | 3 | public interface Performer { 4 | 5 | void perform() throws Exception; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/security/README.md: -------------------------------------------------------------------------------- 1 | # 说明 2 | 3 | > Spring 安全 4 | 5 | ## 示例 6 | 7 | - **spring-tutorial-security-shiro**:spring 集成 shiro 实现安全框架的范例。 8 | 9 | spring 自身的安全框架 spring-security 相比 shiro 较为重型化,并且 shiro 可以满足大部分的应用,所以这里选用 shiro。 10 | -------------------------------------------------------------------------------- /codes/web/basic/mvc/src/main/java/example/spring/web/mvc/exceptions/BusinessException.java: -------------------------------------------------------------------------------- 1 | package example.spring.web.mvc.exceptions; 2 | 3 | @SuppressWarnings("serial") 4 | public class BusinessException extends Exception { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/blank.gif -------------------------------------------------------------------------------- /codes/core/ioc/src/main/java/example/spring/core/bean/annotation/autowire/instrument/Instrument.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.bean.annotation.autowire.instrument; 2 | 3 | public interface Instrument { 4 | 5 | void play(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /codes/core/ioc/src/main/java/example/spring/core/bean/entity/job/Instrument.java: -------------------------------------------------------------------------------- 1 | package example.spring.core.bean.entity.job; 2 | 3 | /** 4 | * 乐器 5 | */ 6 | public interface Instrument { 7 | 8 | String play(); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /codes/integration/spring-integration-libs/src/test/java/io/github/dunwu/spring/libs/dozer/vo/Status.java: -------------------------------------------------------------------------------- 1 | package io.github.dunwu.spring.libs.dozer.vo; 2 | 3 | public enum Status { 4 | 5 | PROCESSING, 6 | SUCCESS, 7 | ERROR 8 | } 9 | -------------------------------------------------------------------------------- /codes/security/spring-boot-security-session/README.md: -------------------------------------------------------------------------------- 1 | # SpringBootTutorial :: Web :: Session 2 | 3 | > 通过 Redis 管理 Session 4 | 5 | ## 引用和引申 6 | 7 | https://docs.spring.io/spring-session/docs/current/reference/html5/guides/boot-redis.html 8 | -------------------------------------------------------------------------------- /codes/web/view/bootstrap/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Allow Thymeleaf templates to be reloaded at dev time 2 | spring.thymeleaf.cache = false 3 | server.tomcat.accesslog.enabled = true 4 | server.tomcat.basedir = target/tomcat 5 | -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/loading.gif -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/combo_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/combo_arrow.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/menu_arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/menu_arrows.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/panel_tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/panel_tools.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/tabs_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/tabs_icons.png -------------------------------------------------------------------------------- /codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/tree_icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dunwu/spring-tutorial/HEAD/codes/web/view/easyui/src/main/resources/static/lib/easyui/themes/bootstrap/images/tree_icons.png -------------------------------------------------------------------------------- /codes/integration/spring-integration-libs/src/test/java/io/github/dunwu/spring/libs/dozer/vo/StatusPrime.java: -------------------------------------------------------------------------------- 1 | package io.github.dunwu.spring.libs.dozer.vo; 2 | 3 | public enum StatusPrime { 4 | 5 | PROCESSING, 6 | SUCCESS, 7 | ERROR 8 | } 9 | -------------------------------------------------------------------------------- /codes/security/spring-security-shiro/src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | 3 | 4 |Get your greeting here
9 | 10 | 11 | -------------------------------------------------------------------------------- /codes/web/view/bootstrap/src/main/java/example/spring/web/MessageRepository.java: -------------------------------------------------------------------------------- 1 | package example.spring.web; 2 | 3 | public interface MessageRepository { 4 | 5 | void deleteMessage(Long id); 6 | 7 | IterableGet your greeting here
9 | 10 | 11 | -------------------------------------------------------------------------------- /codes/web/helloworld/src/main/resources/static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Get your greeting here
9 | 10 | 11 | -------------------------------------------------------------------------------- /codes/data/middleware/sharding/src/main/java/example/spring/data/middleware/sharding/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package example.spring.data.middleware.sharding.mapper; 2 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 | import example.spring.data.middleware.sharding.entity.User; 5 | 6 | public interface UserMapper extends BaseMapper8 | * MP 支持不需要 UserMapper.xml 测试注解条件 9 | *
10 | * 11 | * @author hubin 12 | * @since 2021-08-19 13 | */ 14 | public interface User2Mapper extends BaseMapper8 | * MP 支持不需要 UserMapper.xml 这个模块演示内置 CRUD 咱们就不要 XML 部分了 9 | *
10 | * 11 | * @author hubin 12 | * @since 2018-08-11 13 | */ 14 | public interface UserMapper extends BaseMapper${message}
进入本页面后,后台应用会自动打印日志。
9 |打印信息:${message}
10 |导航:
9 |${info}
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /codes/web/basic/mvc/src/main/webapp/WEB-INF/views/views/dataBinding.jsp: -------------------------------------------------------------------------------- 1 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 2 | <%@ page session="false" %> 3 | 4 | 5 |8 | * 用户表 Mapper 接口 9 | *
10 | * 11 | * @author Zhang Peng 12 | * @since 2019-09-17 13 | */ 14 | public interface AccountMapper extends BaseMapper8 | * 用户表 Mapper 接口 9 | *
10 | * 11 | * @author Zhang Peng 12 | * @since 2019-09-17 13 | */ 14 | public interface AccountMapper extends BaseMapper7 | * User: Zhang Kaitao 8 | *
9 | * Date: 14-1-28 10 | *
11 | * Version: 1.0
12 | */
13 | public interface PermissionDao {
14 |
15 | public Permission createPermission(Permission permission);
16 |
17 | public void deletePermission(Long permissionId);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/codes/distributed/trace/sleuth/sleuth-feign/src/main/java/example/spring/trace/sleuth/SampleFeignClient.java:
--------------------------------------------------------------------------------
1 | package example.spring.trace.sleuth;
2 |
3 | import org.springframework.cloud.openfeign.FeignClient;
4 | import org.springframework.web.bind.annotation.GetMapping;
5 | import org.springframework.web.bind.annotation.RequestParam;
6 |
7 | @FeignClient(name = "sleuth-web", url = "http://127.0.0.1:8080")
8 | public interface SampleFeignClient {
9 |
10 | @GetMapping("/hello")
11 | String hello(@RequestParam String name);
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/codes/integration/template/spring-boot-tmpl-thymeleaf/src/main/java/io/github/dunwu/springboot/SpringBootTmplThymeleafApplication.java:
--------------------------------------------------------------------------------
1 | package io.github.dunwu.springboot;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class SpringBootTmplThymeleafApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(SpringBootTmplThymeleafApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/codes/web/basic/mvc/src/main/webapp/resources/jqueryui/1.8/themes/base/jquery.ui.base.css:
--------------------------------------------------------------------------------
1 | @import url("jquery.ui.core.css");
2 | @import url("jquery.ui.resizable.css");
3 | @import url("jquery.ui.selectable.css");
4 | @import url("jquery.ui.accordion.css");
5 | @import url("jquery.ui.autocomplete.css");
6 | @import url("jquery.ui.button.css");
7 | @import url("jquery.ui.dialog.css");
8 | @import url("jquery.ui.slider.css");
9 | @import url("jquery.ui.tabs.css");
10 | @import url("jquery.ui.datepicker.css");
11 | @import url("jquery.ui.progressbar.css");
--------------------------------------------------------------------------------
/codes/web/websocket/src/main/java/example/spring/web/websocket/echo/DefaultEchoService.java:
--------------------------------------------------------------------------------
1 | package example.spring.web.websocket.echo;
2 |
3 | public class DefaultEchoService implements EchoService {
4 |
5 | private final String echoFormat;
6 |
7 | public DefaultEchoService(String echoFormat) {
8 | this.echoFormat = (echoFormat != null) ? echoFormat : "%s";
9 | }
10 |
11 | @Override
12 | public String getMessage(String message) {
13 | return String.format(this.echoFormat, message);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/docs/01.Java/13.框架/01.Spring/01.Spring核心/24.SpringEL.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Spring EL 表达式
3 | date: 2023-01-12 20:26:46
4 | order: 24
5 | categories:
6 | - Java
7 | - 框架
8 | - Spring
9 | - Spring核心
10 | tags:
11 | - Java
12 | - 框架
13 | - Spring
14 | permalink: /pages/1f743f/
15 | ---
16 |
17 | # Spring EL 表达式
18 |
19 | ## 参考资料
20 |
21 | - [Spring 官方文档之 Core Technologies](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans)
22 | - [《小马哥讲 Spring 核心编程思想》](https://time.geekbang.org/course/intro/265)
--------------------------------------------------------------------------------
/codes/core/bean/src/main/java/example/spring/core/bean/Company.java:
--------------------------------------------------------------------------------
1 | package example.spring.core.bean;
2 |
3 | import lombok.Data;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * Lombok 示例
9 | *
10 | * @author Zhang Peng
11 | * @see http://jnb.ociweb.com/jnb/jnbJan2010.html
12 | */
13 | @Data(staticConstructor = "of")
14 | public class Company {
15 |
16 | private final Person founder;
17 |
18 | protected List
7 | * User: Zhang Kaitao
8 | *
9 | * Date: 14-1-28
10 | *
11 | * Version: 1.0
12 | */
13 | public interface PermissionService {
14 |
15 | public Permission createPermission(Permission permission);
16 |
17 | public void deletePermission(Long permissionId);
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/codes/data/nosql/redis/src/main/resources/application-sentinel.properties:
--------------------------------------------------------------------------------
1 | #############################################################
2 | # 连接 Redis 哨兵集群配置示例
3 | #############################################################
4 | spring.redis.timeout = 3000ms
5 | spring.redis.database = 15
6 | spring.redis.cluster.max-redirects = 2
7 | # redis sentinel 连接配置方式
8 | spring.redis.sentinel.master = redis-master
9 | spring.redis.sentinel.nodes[0] = 127.0.0.1:7000
10 | spring.redis.sentinel.nodes[1] = 127.0.0.1:7001
11 | spring.redis.sentinel.nodes[2] = 127.0.0.1:7002
12 |
--------------------------------------------------------------------------------
/codes/integration/mq/spring-boot-mq-rabbitmq/src/main/java/io/github/dunwu/springboot/RabbitConfiguration.java:
--------------------------------------------------------------------------------
1 | package io.github.dunwu.springboot;
2 |
3 | import org.springframework.amqp.core.Queue;
4 | import org.springframework.context.annotation.Bean;
5 | import org.springframework.context.annotation.Configuration;
6 |
7 | @Configuration
8 | public class RabbitConfiguration {
9 |
10 | private final static String QUEUE_NAME = "test";
11 |
12 | @Bean
13 | public Queue queue() {
14 | return new Queue(QUEUE_NAME);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/codes/integration/spring-integration-scheduler/src/main/java/io/github/dunwu/spring/scheduler/DemoTask.java:
--------------------------------------------------------------------------------
1 | package io.github.dunwu.spring.scheduler;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 |
6 | /**
7 | * 一个调度任务例子
8 | *
9 | * @author Zhang Peng
10 | * @since 2016年8月31日
11 | */
12 | public class DemoTask implements Runnable {
13 |
14 | final Logger logger = LoggerFactory.getLogger(this.getClass());
15 |
16 | @Override
17 | public void run() {
18 | logger.info("call DemoTask.run");
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/codes/distributed/trace/opentelemetry/http/server/src/main/java/example/trace/opentelemetry/OpenTelemetryPropagationServerApplication.java:
--------------------------------------------------------------------------------
1 | package example.trace.opentelemetry;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | @SpringBootApplication
7 | public class OpenTelemetryPropagationServerApplication {
8 |
9 | public static void main(String[] args) {
10 | SpringApplication.run(OpenTelemetryPropagationServerApplication.class, args);
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/codes/integration/spring-integration-libs/src/test/java/io/github/dunwu/spring/libs/dozer/vo/Dest.java:
--------------------------------------------------------------------------------
1 | package io.github.dunwu.spring.libs.dozer.vo;
2 |
3 | public class Dest {
4 |
5 | private long id;
6 |
7 | private Info info;
8 |
9 | public long getId() {
10 | return id;
11 | }
12 |
13 | public void setId(long id) {
14 | this.id = id;
15 | }
16 |
17 | public Info getInfo() {
18 | return info;
19 | }
20 |
21 | public void setInfo(Info info) {
22 | this.info = info;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/codes/core/ioc/src/main/java/example/spring/core/bean/annotation/factory/BeanFactory.java:
--------------------------------------------------------------------------------
1 | package example.spring.core.bean.annotation.factory;
2 |
3 | public class BeanFactory {
4 |
5 | private BeanFactory() { }
6 |
7 | public static BeanFactory getInstance() {
8 | return StageSingletonHolder.instance;
9 | }
10 |
11 | public void work() {
12 | System.out.println("工作");
13 | }
14 |
15 | private static class StageSingletonHolder {
16 |
17 | static BeanFactory instance = new BeanFactory();
18 |
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/codes/core/ioc/src/main/resources/META-INF/spring-life.xml:
--------------------------------------------------------------------------------
1 |
2 | Welcome
6 | Welcome to use spring-tutorial.
9 | Current time is: ${time}
10 | Path variable 'account': ${account}
12 | Query param 'date': ${param.date}
13 |