├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── dependabot.yml └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── README.md ├── code ├── CNAME ├── assert │ └── logo.gif ├── basic │ ├── computer_architecture_principles │ │ ├── 01-overview │ │ │ └── index.md │ │ ├── 02-data-representation-and-operations │ │ │ └── index.md │ │ ├── 03-memory │ │ │ └── index.md │ │ ├── 04-instruction-set │ │ │ └── index.md │ │ ├── 05-cpu │ │ │ └── index.md │ │ ├── 06-bus-and-io-system │ │ │ └── index.md │ │ └── index.md │ ├── computer_network │ │ ├── application_http │ │ │ └── index.md │ │ └── index.md │ ├── data-structures-and-algorithm-analysis │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── luguosong │ │ │ ├── _01_foundations │ │ │ ├── _01_the_role_of_algorithms_in_computers │ │ │ │ └── index.md │ │ │ └── index.md │ │ │ └── index.md │ ├── index.md │ └── operating_system │ │ └── index.md ├── custom │ ├── css │ │ ├── custom.css │ │ ├── font.css │ │ └── viewer.css │ └── js │ │ ├── custom.js │ │ ├── katex.js │ │ ├── viewer-js-init.js │ │ └── viewer.js ├── document-translation │ ├── css-the-definitive-guide │ │ ├── 01-css-fundamentals │ │ │ └── index.md │ │ └── index.md │ ├── index.md │ ├── junit5-user-guide │ │ ├── 01-overview │ │ │ └── index.md │ │ ├── 02-writing-tests │ │ │ └── index.md │ │ └── index.md │ ├── spring-framework │ │ ├── 01-overview │ │ │ └── index.md │ │ ├── 02-core-technologies │ │ │ ├── 01-the-ioc-container │ │ │ │ ├── 01-introduction │ │ │ │ │ └── index.md │ │ │ │ ├── 02-basics │ │ │ │ │ └── index.md │ │ │ │ └── index.md │ │ │ └── index.md │ │ └── index.md │ ├── spring-security-in-action2 │ │ ├── index.md │ │ ├── part1_say_hello_to_spring_security │ │ │ ├── 01_security_today │ │ │ │ └── index.md │ │ │ ├── 02_hello │ │ │ │ └── index.md │ │ │ └── index.md │ │ ├── part2_configuring_authentication │ │ │ ├── 03_managing_users │ │ │ │ ├── index.md │ │ │ │ ├── ssia-ch3-ex1 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ │ └── ssiach3ex1 │ │ │ │ │ │ │ │ ├── SsiaCh3Ex1Application.java │ │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ └── ProjectConfig.java │ │ │ │ │ │ │ │ ├── controller │ │ │ │ │ │ │ │ └── HelloController.java │ │ │ │ │ │ │ │ ├── model │ │ │ │ │ │ │ │ └── User.java │ │ │ │ │ │ │ │ └── services │ │ │ │ │ │ │ │ └── InMemoryUserDetailsService.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ └── application.properties │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── ssiach3ex1 │ │ │ │ │ │ └── SsiaCh3Ex1ApplicationTests.java │ │ │ │ ├── ssia-ch3-ex2 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ │ └── ssiach3ex2 │ │ │ │ │ │ │ │ ├── SsiaCh3Ex2Application.java │ │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ └── ProjectConfig.java │ │ │ │ │ │ │ │ └── controllers │ │ │ │ │ │ │ │ └── HelloController.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ │ ├── data.sql │ │ │ │ │ │ │ └── schema.sql │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── ssiach3ex2 │ │ │ │ │ │ └── SsiaCh3Ex2ApplicationTests.java │ │ │ │ └── ssia-ch3-ex3 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── ssiach3ex3 │ │ │ │ │ │ │ ├── SsiaCh3Ex3Application.java │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── ProjectConfig.java │ │ │ │ │ │ │ └── controllers │ │ │ │ │ │ │ └── HelloController.java │ │ │ │ │ └── resources │ │ │ │ │ │ ├── application.properties │ │ │ │ │ │ └── server.ldif │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── ssiach3ex3 │ │ │ │ │ └── SsiaCh3Ex3ApplicationTests.java │ │ │ ├── 04_managing_passwords │ │ │ │ └── index.md │ │ │ ├── 05_begins_with_filters │ │ │ │ ├── index.md │ │ │ │ ├── ssia-ch5-ex1 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ │ └── ssiach5ex1 │ │ │ │ │ │ │ │ ├── SsiaCh5Ex1Application.java │ │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ └── ProjectConfig.java │ │ │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ │ └── HelloController.java │ │ │ │ │ │ │ │ └── filters │ │ │ │ │ │ │ │ ├── AuthenticationLoggingFilter.java │ │ │ │ │ │ │ │ └── RequestValidationFilter.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ └── application.properties │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── ssiach5ex1 │ │ │ │ │ │ └── SsiaCh5Ex1ApplicationTests.java │ │ │ │ ├── ssia-ch5-ex2 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ │ └── ssiach5ex2 │ │ │ │ │ │ │ │ ├── SsiaCh5Ex2Application.java │ │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ └── ProjectConfig.java │ │ │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ │ └── HelloController.java │ │ │ │ │ │ │ │ └── filters │ │ │ │ │ │ │ │ └── StaticKeyAuthenticationFilter.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ └── application.properties │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── ssiach5ex2 │ │ │ │ │ │ └── SsiaCh5Ex2ApplicationTests.java │ │ │ │ └── ssia-ch5-ex3 │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── ssiach5ex3 │ │ │ │ │ │ │ ├── SsiaCh5Ex3Application.java │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── ProjectConfig.java │ │ │ │ │ │ │ ├── controllers │ │ │ │ │ │ │ └── HelloController.java │ │ │ │ │ │ │ └── filters │ │ │ │ │ │ │ ├── AuthenticationLoggingFilter.java │ │ │ │ │ │ │ └── RequestValidationFilter.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── ssiach5ex3 │ │ │ │ │ └── SsiaCh5Ex3ApplicationTests.java │ │ │ ├── 06_implementing_authentications │ │ │ │ └── index.md │ │ │ └── index.md │ │ ├── part3_configuring_authorization │ │ │ ├── 07_configuring_endpoint_level_authorization_restricting_access │ │ │ │ └── index.md │ │ │ └── index.md │ │ ├── part4_implementing_oAuth2_and_openid_connect │ │ │ └── index.md │ │ ├── part5_going_reactive │ │ │ └── index.md │ │ └── part6_testing_security_configurations │ │ │ └── index.md │ └── spring-start-here │ │ ├── index.md │ │ ├── part1 │ │ ├── 01-spring-in-the-real-world │ │ │ └── index.md │ │ ├── 02-defining-beans │ │ │ └── index.md │ │ ├── 03-wiring-beans │ │ │ └── index.md │ │ └── index.md │ │ └── part2 │ │ └── index.md ├── english │ ├── grammar │ │ └── index.md │ ├── index.md │ ├── new_concept_english │ │ └── index.md │ ├── phonetic_symbol │ │ ├── index.md │ │ └── mp3 │ │ │ ├── aɪ.mp3 │ │ │ ├── b.mp3 │ │ │ ├── d.mp3 │ │ │ ├── e.mp3 │ │ │ ├── eɪ.mp3 │ │ │ ├── g.mp3 │ │ │ ├── iː.mp3 │ │ │ ├── k.mp3 │ │ │ ├── p.mp3 │ │ │ ├── t.mp3 │ │ │ ├── uː.mp3 │ │ │ ├── æ.mp3 │ │ │ ├── ɑː.mp3 │ │ │ ├── ɒ.mp3 │ │ │ ├── ɔː.mp3 │ │ │ ├── ə.mp3 │ │ │ ├── əʊ.mp3 │ │ │ ├── ɜː.mp3 │ │ │ ├── ɪ.mp3 │ │ │ ├── ʊ.mp3 │ │ │ └── ʌ.mp3 │ └── programming_vocabulary │ │ └── index.md ├── front-end │ ├── code_bundler │ │ ├── index.md │ │ └── webpack │ │ │ └── index.md │ ├── css │ │ └── index.md │ ├── html │ │ ├── basic │ │ │ ├── auxiliary.html │ │ │ ├── comment.html │ │ │ ├── entity.html │ │ │ ├── form.html │ │ │ ├── frame.html │ │ │ ├── hyperlinks.html │ │ │ ├── image.html │ │ │ ├── img │ │ │ │ └── small-image.jpg │ │ │ ├── index.md │ │ │ ├── list.html │ │ │ ├── media │ │ │ │ ├── an-sound.mp3 │ │ │ │ └── sp.mp4 │ │ │ ├── meta.html │ │ │ ├── table.html │ │ │ ├── text.html │ │ │ └── typography.html │ │ ├── html5 │ │ │ ├── h5_audio.html │ │ │ ├── h5_datalist.html │ │ │ ├── h5_details.html │ │ │ ├── h5_form.html │ │ │ ├── h5_layout.html │ │ │ ├── h5_meter.html │ │ │ ├── h5_text.html │ │ │ ├── h5_video.html │ │ │ └── index.md │ │ └── index.md │ ├── index.md │ ├── js │ │ ├── 01_Introduction_to_JavaScript │ │ │ ├── hello.js │ │ │ └── index.md │ │ ├── 02_Lexical_Structure │ │ │ └── index.md │ │ ├── 03_Types_Values_and_Variables │ │ │ ├── destructuring_assignment.js │ │ │ └── index.md │ │ ├── 04_Expressions_and_Operators │ │ │ ├── delete.js │ │ │ └── index.md │ │ ├── 05_Statements │ │ │ └── index.md │ │ ├── 06_Objects │ │ │ └── index.md │ │ ├── 07_Arrays │ │ │ └── index.md │ │ ├── 13_Asynchronous_JavaScript │ │ │ ├── callback_hell.html │ │ │ ├── event.html │ │ │ ├── index.md │ │ │ ├── interval.html │ │ │ ├── request.html │ │ │ └── timeout.html │ │ ├── index.md │ │ └── js │ │ │ └── print.js │ ├── react │ │ ├── basic │ │ │ ├── adding-interactivity │ │ │ │ └── index.md │ │ │ ├── describing-the-ui │ │ │ │ └── index.md │ │ │ ├── escape-hatches │ │ │ │ └── index.md │ │ │ ├── index.md │ │ │ ├── managing-state │ │ │ │ └── index.md │ │ │ └── react-demo │ │ │ │ ├── eslint.config.js │ │ │ │ ├── index.html │ │ │ │ ├── package.json │ │ │ │ ├── public │ │ │ │ └── vite.svg │ │ │ │ ├── src │ │ │ │ ├── App.jsx │ │ │ │ ├── assets │ │ │ │ │ └── react.svg │ │ │ │ ├── index.css │ │ │ │ └── main.jsx │ │ │ │ └── vite.config.js │ │ ├── global-state-management │ │ │ ├── index.md │ │ │ ├── mobx │ │ │ │ └── index.md │ │ │ └── redux │ │ │ │ ├── example │ │ │ │ └── reducer │ │ │ │ │ └── reducer.js │ │ │ │ └── index.md │ │ ├── index.md │ │ ├── nextjs │ │ │ └── index.md │ │ └── react_router │ │ │ └── index.md │ ├── typescript │ │ ├── basic │ │ │ ├── hello_world.js │ │ │ ├── hello_world.ts │ │ │ ├── index.md │ │ │ ├── interfaces.js │ │ │ └── interfaces.ts │ │ ├── engineering │ │ │ └── index.md │ │ └── index.md │ └── vue │ │ └── index.md ├── index.md ├── java-serve │ ├── authentication │ │ └── index.md │ ├── database │ │ ├── index.md │ │ ├── jdbc │ │ │ ├── index.md │ │ │ └── jdbc-demo │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ └── JDBCHello.java │ │ ├── mybatis │ │ │ ├── index.md │ │ │ ├── mybatis-demo │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ ├── dynamic_sql │ │ │ │ │ │ ├── pojo │ │ │ │ │ │ │ └── Employees.java │ │ │ │ │ │ ├── sql_if │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ └── sql_where │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── get_param │ │ │ │ │ │ ├── multiple_parameters │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── object_and_mapper │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── param_annotation │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── placeholder │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── pojo │ │ │ │ │ │ │ └── Employees.java │ │ │ │ │ │ ├── single_parameter │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ └── string_splicing │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── hello │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ ├── mapper │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ └── pojo │ │ │ │ │ │ │ ├── Departments.java │ │ │ │ │ │ │ └── Employees.java │ │ │ │ │ │ ├── many_to_one │ │ │ │ │ │ ├── association │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── pojo │ │ │ │ │ │ │ ├── Departments.java │ │ │ │ │ │ │ └── Employees.java │ │ │ │ │ │ └── step_by_step │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ ├── DepartmentsMapper.java │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ ├── one_to_many │ │ │ │ │ │ ├── collection │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── DepartmentsMapper.java │ │ │ │ │ │ ├── pojo │ │ │ │ │ │ │ ├── Departments.java │ │ │ │ │ │ │ └── Employees.java │ │ │ │ │ │ └── step_by_step │ │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ ├── DepartmentsMapper.java │ │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ │ └── pagination_plugin │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ └── mapper │ │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ └── resources │ │ │ │ │ ├── com │ │ │ │ │ └── luguosong │ │ │ │ │ │ ├── dynamic_sql │ │ │ │ │ │ ├── sql_if │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ └── sql_where │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── get_param │ │ │ │ │ │ ├── multiple_parameters │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── object_and_mapper │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── param_annotation │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── placeholder │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── single_parameter │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ └── string_splicing │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── hello │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── many_to_one │ │ │ │ │ │ ├── association │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ └── step_by_step │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ ├── DepartmentsMapper.xml │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ ├── one_to_many │ │ │ │ │ │ ├── collection │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ │ └── DepartmentsMapper.xml │ │ │ │ │ │ └── step_by_step │ │ │ │ │ │ │ └── mapper │ │ │ │ │ │ │ ├── DepartmentsMapper.xml │ │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ │ └── pagination_plugin │ │ │ │ │ │ └── mapper │ │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ │ ├── log4j.properties │ │ │ │ │ ├── mybatis-config-hello.xml │ │ │ │ │ └── mybatis-config-page.xml │ │ │ └── mybatis-generator │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── Test.java │ │ │ │ │ ├── mapper │ │ │ │ │ ├── DepartmentsMapper.java │ │ │ │ │ └── EmployeesMapper.java │ │ │ │ │ └── pojo │ │ │ │ │ ├── Departments.java │ │ │ │ │ └── Employees.java │ │ │ │ └── resources │ │ │ │ ├── com │ │ │ │ └── luguosong │ │ │ │ │ └── mapper │ │ │ │ │ ├── DepartmentsMapper.xml │ │ │ │ │ └── EmployeesMapper.xml │ │ │ │ ├── generatorConfig.xml │ │ │ │ ├── log4j.properties │ │ │ │ └── mybatis-config.xml │ │ └── mybatis_plus │ │ │ ├── index.md │ │ │ └── mybatis-plus-hello │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── mybatisplushello │ │ │ │ │ ├── MybatisPlusHelloApplication.java │ │ │ │ │ ├── entity │ │ │ │ │ └── User.java │ │ │ │ │ └── mapper │ │ │ │ │ └── UserMapper.java │ │ │ └── resources │ │ │ │ ├── application.yml │ │ │ │ └── db │ │ │ │ ├── data.sql │ │ │ │ └── schema.sql │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── luguosong │ │ │ └── mybatisplushello │ │ │ ├── MybatisPlusHelloApplicationTests.java │ │ │ └── WrapperTest.java │ ├── distributed │ │ ├── configuration │ │ │ ├── index.md │ │ │ └── nacos │ │ │ │ └── nacos.md │ │ ├── gateway │ │ │ ├── index.md │ │ │ └── spring_cloud_gateway │ │ │ │ ├── gateway-custom-gateway-filter │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── upda │ │ │ │ │ │ │ └── gatewaycustomgatewayfilter │ │ │ │ │ │ │ ├── GatewayCustomGatewayFilterApplication.java │ │ │ │ │ │ │ └── filter │ │ │ │ │ │ │ └── PrintAnyGatewayFilterFactory.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.yml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── upda │ │ │ │ │ └── gatewaycustomgatewayfilter │ │ │ │ │ └── GatewayCustomGatewayFilterApplicationTests.java │ │ │ │ ├── gateway-custom-global-filter │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── upda │ │ │ │ │ │ │ └── gatewaycustomglobalfilter │ │ │ │ │ │ │ ├── GatewayCustomGlobalFilterApplication.java │ │ │ │ │ │ │ └── filter │ │ │ │ │ │ │ └── MyGlobalFilter.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.yml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── upda │ │ │ │ │ └── gatewaycustomglobalfilter │ │ │ │ │ └── GatewayCustomGlobalFilterApplicationTests.java │ │ │ │ ├── gateway-hello │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── gatewayhello │ │ │ │ │ │ │ └── GatewayHelloApplication.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.yml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── gatewayhello │ │ │ │ │ └── GatewayHelloApplicationTests.java │ │ │ │ ├── gateway-server1 │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── gatewayserver1 │ │ │ │ │ │ │ ├── GatewayServer1Application.java │ │ │ │ │ │ │ └── controller │ │ │ │ │ │ │ └── Server1Controller.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.yml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── gatewayserver1 │ │ │ │ │ └── GatewayServer1ApplicationTests.java │ │ │ │ ├── gateway-server2 │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── gatewayserver2 │ │ │ │ │ │ │ ├── GatewayServer2Application.java │ │ │ │ │ │ │ └── controller │ │ │ │ │ │ │ └── Server2Controller.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.yml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── gatewayserver2 │ │ │ │ │ └── GatewayServer2ApplicationTests.java │ │ │ │ └── index.md │ │ ├── index.md │ │ ├── invocation │ │ │ ├── index.md │ │ │ ├── open-feign │ │ │ │ ├── index.md │ │ │ │ ├── open-feign-consumer │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ │ ├── main │ │ │ │ │ │ ├── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ │ └── openfeignconsumer │ │ │ │ │ │ │ │ ├── OpenFeignConsumerApplication.java │ │ │ │ │ │ │ │ ├── client │ │ │ │ │ │ │ │ └── ProducerClient.java │ │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ │ └── DefaultFeignConfig.java │ │ │ │ │ │ │ │ └── controller │ │ │ │ │ │ │ │ └── TestController.java │ │ │ │ │ │ └── resources │ │ │ │ │ │ │ └── application.yml │ │ │ │ │ │ └── test │ │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── openfeignconsumer │ │ │ │ │ │ └── OpenFeignConsumerApplicationTests.java │ │ │ │ └── open-feign-producer │ │ │ │ │ ├── pom.xml │ │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── openfeignproducer │ │ │ │ │ │ │ ├── OpenFeignProducerApplication.java │ │ │ │ │ │ │ └── controller │ │ │ │ │ │ │ └── DemoController.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.yml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── openfeignproducer │ │ │ │ │ └── OpenFeignProducerApplicationTests.java │ │ │ └── rest-template │ │ │ │ ├── index.md │ │ │ │ ├── rest-template-hello │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ ├── main │ │ │ │ │ ├── java │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ │ └── resttemplatehello │ │ │ │ │ │ │ ├── RestTemplateHelloApplication.java │ │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── RestTemplateConfig.java │ │ │ │ │ │ │ └── controller │ │ │ │ │ │ │ └── TestController.java │ │ │ │ │ └── resources │ │ │ │ │ │ └── application.properties │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── resttemplatehello │ │ │ │ │ └── RestTemplateHelloApplicationTests.java │ │ │ │ └── rest-template-service │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── resttemplateservice │ │ │ │ │ │ ├── RestTemplateServiceApplication.java │ │ │ │ │ │ └── controller │ │ │ │ │ │ └── DemoController.java │ │ │ │ └── resources │ │ │ │ │ └── application.properties │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ └── resttemplateservice │ │ │ │ └── RestTemplateServiceApplicationTests.java │ │ └── service-discovery │ │ │ ├── index.md │ │ │ └── nacos │ │ │ ├── index.md │ │ │ ├── nacos-consumer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ └── nacosconsumer │ │ │ │ │ │ ├── NacosConsumerApplication.java │ │ │ │ │ │ └── controller │ │ │ │ │ │ └── TestController.java │ │ │ │ └── resources │ │ │ │ │ └── application.yml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ └── nacosconsumer │ │ │ │ └── NacosConsumerApplicationTests.java │ │ │ └── nacos-producer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── nacosproducer │ │ │ │ │ ├── NacosProducerApplication.java │ │ │ │ │ └── controller │ │ │ │ │ └── DemoController.java │ │ │ └── resources │ │ │ │ └── application.yml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── luguosong │ │ │ └── nacosproducer │ │ │ └── NacosProducerApplicationTests.java │ ├── index.md │ ├── spring │ │ ├── aop │ │ │ ├── aop-aspect │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── luguosong │ │ │ │ │ │ ├── anno │ │ │ │ │ │ ├── SpringConfig.java │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ ├── UserAspect.java │ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ │ │ └── xml │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ ├── UserAspect.java │ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ │ └── resources │ │ │ │ │ └── aspect.xml │ │ │ └── index.md │ │ ├── basic │ │ │ ├── index.md │ │ │ └── spring-hello │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── ioc │ │ │ │ │ ├── User.java │ │ │ │ │ ├── UserService.java │ │ │ │ │ ├── annotation │ │ │ │ │ ├── config │ │ │ │ │ │ ├── SpringConfig.java │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ └── User.java │ │ │ │ │ ├── dependency_injection │ │ │ │ │ │ ├── Basketball.java │ │ │ │ │ │ ├── Bike.java │ │ │ │ │ │ ├── Car.java │ │ │ │ │ │ ├── Hobby.java │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ ├── User.java │ │ │ │ │ │ └── Vehicle.java │ │ │ │ │ └── hello │ │ │ │ │ │ ├── Test.java │ │ │ │ │ │ └── User.java │ │ │ │ │ ├── create_bean │ │ │ │ │ ├── FactoryMethod1.java │ │ │ │ │ ├── FactoryMethod1Test.java │ │ │ │ │ ├── FactoryMethod2.java │ │ │ │ │ ├── FactoryMethod2Test.java │ │ │ │ │ ├── SimpleFactory.java │ │ │ │ │ └── SimpleFactoryTest.java │ │ │ │ │ ├── dependency_injection │ │ │ │ │ ├── IocAutoTest.java │ │ │ │ │ ├── IocConstructorTest.java │ │ │ │ │ ├── IocSetterTest.java │ │ │ │ │ ├── IocUtilTest.java │ │ │ │ │ ├── Jdbc.java │ │ │ │ │ └── JdbcTest.java │ │ │ │ │ ├── hello │ │ │ │ │ └── SpringHello.java │ │ │ │ │ ├── life_cycle │ │ │ │ │ ├── Dog.java │ │ │ │ │ ├── LifeCycleTest.java │ │ │ │ │ └── MyBeanPostProcessor.java │ │ │ │ │ └── other │ │ │ │ │ └── MyObjectToApplication.java │ │ │ │ └── resources │ │ │ │ ├── ioc_annotation_dependency_injection .xml │ │ │ │ ├── ioc_annotation_hello.xml │ │ │ │ ├── ioc_auto.xml │ │ │ │ ├── ioc_constructor.xml │ │ │ │ ├── ioc_create_factory_method1.xml │ │ │ │ ├── ioc_create_factory_method2.xml │ │ │ │ ├── ioc_create_simple_factory.xml │ │ │ │ ├── ioc_jdbc.xml │ │ │ │ ├── ioc_life_cycle.xml │ │ │ │ ├── ioc_scope.xml │ │ │ │ ├── ioc_set.xml │ │ │ │ ├── ioc_util.xml │ │ │ │ ├── jdbc.properties │ │ │ │ ├── log4j2.xml │ │ │ │ └── spring_config_hello.xml │ │ ├── beans │ │ │ └── index.md │ │ ├── index.md │ │ ├── spring-framework-versions │ │ │ └── index.md │ │ └── ssm │ │ │ ├── index.md │ │ │ └── ssm-annotation │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ ├── bean │ │ │ │ └── User.java │ │ │ │ ├── config │ │ │ │ ├── DataSourceConfig.java │ │ │ │ ├── MyBatisConfig.java │ │ │ │ ├── SpringConfig.java │ │ │ │ ├── SpringMvcConfig.java │ │ │ │ └── WebAppInitialize.java │ │ │ │ ├── controller │ │ │ │ └── UserController.java │ │ │ │ ├── dao │ │ │ │ └── UserDao.java │ │ │ │ ├── interceptor │ │ │ │ └── MyInterceptor.java │ │ │ │ └── service │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ └── UserServiceImpl.java │ │ │ ├── resources │ │ │ └── jdbc.properties │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── thymeleaf │ │ │ ├── error.html │ │ │ └── index.html │ ├── springboot │ │ ├── basic │ │ │ ├── index.md │ │ │ └── springboot-hello │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── SpringBootHelloApplication.java │ │ │ │ │ └── controller │ │ │ │ │ └── HelloController.java │ │ │ │ └── resources │ │ │ │ └── application.yml │ │ └── index.md │ └── web_application │ │ ├── filter_listener │ │ ├── filter-hello │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── Filter1.java │ │ │ │ │ ├── Filter2.java │ │ │ │ │ └── Servlet1.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── index.md │ │ └── listener-hello │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ ├── MyHttpSessionAttributeListener.java │ │ │ │ ├── MyHttpSessionListener.java │ │ │ │ ├── MyServletContextAttributeListener.java │ │ │ │ ├── MyServletContextListener.java │ │ │ │ ├── MyServletRequestAttributeListener.java │ │ │ │ ├── MyServletRequestListener.java │ │ │ │ ├── ServletDemo.java │ │ │ │ └── User.java │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── web.xml │ │ │ └── index.jsp │ │ ├── index.md │ │ ├── jsp │ │ ├── hello_jsp │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ ├── WEB-INF │ │ │ │ └── web.xml │ │ │ │ ├── index.jsp │ │ │ │ ├── java_in_jsp1.jsp │ │ │ │ ├── java_in_jsp2.jsp │ │ │ │ ├── java_in_jsp3.jsp │ │ │ │ └── request_object.jsp │ │ ├── index.md │ │ ├── jsp_el │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ ├── WEB-INF │ │ │ │ └── web.xml │ │ │ │ ├── index.jsp │ │ │ │ ├── initParam.jsp │ │ │ │ ├── pageContext.jsp │ │ │ │ ├── param.jsp │ │ │ │ └── priority.jsp │ │ └── jsp_jstl │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── web.xml │ │ │ ├── index.jsp │ │ │ └── jstlHello.jsp │ │ ├── mvc │ │ ├── index.md │ │ ├── springmvc-exception-annotation │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ ├── ExceptionController.java │ │ │ │ │ └── TestController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── error.html │ │ │ │ └── web.xml │ │ ├── springmvc-exception-xml │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ └── TestController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── error.html │ │ │ │ └── web.xml │ │ ├── springmvc-forward-redirect │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ └── TestController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── test.jsp │ │ │ │ └── web.xml │ │ ├── springmvc-header-info │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ └── header_info │ │ │ │ │ ├── CookieController.java │ │ │ │ │ └── HeaderInfoController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── header-info │ │ │ │ │ └── form.html │ │ │ │ └── web.xml │ │ ├── springmvc-hello-annotation │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── config │ │ │ │ │ ├── SpringMvcConfig.java │ │ │ │ │ └── WebAppInitialize.java │ │ │ │ │ ├── controller │ │ │ │ │ └── HelloController.java │ │ │ │ │ └── interceptors │ │ │ │ │ └── MyInterceptor.java │ │ │ │ └── webapp │ │ │ │ ├── WEB-INF │ │ │ │ └── templates │ │ │ │ │ ├── error.html │ │ │ │ │ ├── hello.html │ │ │ │ │ └── view-controller.html │ │ │ │ └── static │ │ │ │ └── earth.png │ │ ├── springmvc-hello │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ └── HelloController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── hello.html │ │ │ │ └── web.xml │ │ ├── springmvc-interceptor-hello │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── controller │ │ │ │ │ └── HelloController.java │ │ │ │ │ └── interceptors │ │ │ │ │ ├── Interceptor1.java │ │ │ │ │ └── Interceptor2.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── hello.html │ │ │ │ └── web.xml │ │ ├── springmvc-parameters │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── controller │ │ │ │ │ ├── FileDownloadController.java │ │ │ │ │ ├── FileUploadController.java │ │ │ │ │ ├── FormController.java │ │ │ │ │ ├── FormPojoController.java │ │ │ │ │ ├── FormStringController.java │ │ │ │ │ ├── JsonPojoController.java │ │ │ │ │ ├── RequestEntityController.java │ │ │ │ │ ├── ResponseEntityController.java │ │ │ │ │ ├── ResponseJSONStringController.java │ │ │ │ │ └── ResponseStringController.java │ │ │ │ │ └── pojo │ │ │ │ │ └── User.java │ │ │ │ └── webapp │ │ │ │ ├── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ │ └── get-parameters │ │ │ │ │ │ └── form.html │ │ │ │ └── web.xml │ │ │ │ └── upload │ │ │ │ └── demo.jpg │ │ ├── springmvc-restful │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ └── TestController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── test.html │ │ │ │ └── web.xml │ │ ├── springmvc-scope │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── controller │ │ │ │ │ ├── ApplicationScopeController.java │ │ │ │ │ ├── RequestScopeController.java │ │ │ │ │ └── SessionScopeController.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ ├── application-scope.html │ │ │ │ ├── request-scope.html │ │ │ │ └── session-scope.html │ │ │ │ └── web.xml │ │ ├── springmvc-view-controller │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ ├── springmvc-servlet.xml │ │ │ │ ├── templates │ │ │ │ └── test.jsp │ │ │ │ └── web.xml │ │ └── springmvc-view-jsp │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ └── controller │ │ │ │ └── TestController.java │ │ │ └── webapp │ │ │ └── WEB-INF │ │ │ ├── springmvc-servlet.xml │ │ │ ├── templates │ │ │ └── test.jsp │ │ │ └── web.xml │ │ ├── reactive │ │ └── index.md │ │ ├── servlet │ │ ├── annotation_servlet │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── HelloServlet.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── generic-servlet │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── org │ │ │ │ │ └── example │ │ │ │ │ └── genericservlet │ │ │ │ │ └── HelloServlet.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── hello-servlet │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── HelloServlet.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── http-servlet-request-demo │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── DispatcherServletA.java │ │ │ │ │ ├── DispatcherServletB.java │ │ │ │ │ ├── GetRequestInfo.java │ │ │ │ │ └── HelloHttpServletRequest.java │ │ │ │ └── webapp │ │ │ │ ├── WEB-INF │ │ │ │ └── web.xml │ │ │ │ └── index.html │ │ ├── http-servlet-response-demo │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── OutputStreamDemo.java │ │ │ │ │ ├── RedirectA.java │ │ │ │ │ ├── RedirectB.java │ │ │ │ │ └── WriteDemo.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── http-servlet │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── GetServletDemo.java │ │ │ │ │ └── PostServletDemo.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ ├── index.md │ │ ├── servlet-config │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ ├── ServletConfigDemo.java │ │ │ │ │ └── ServletConfigDemo2.java │ │ │ │ └── webapp │ │ │ │ └── WEB-INF │ │ │ │ └── web.xml │ │ └── servlet-context │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ └── ServletContextDemo.java │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── web.xml │ │ │ └── test.html │ │ ├── session_cookie │ │ ├── index.md │ │ └── session_and_cookie │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── luguosong │ │ │ │ ├── AddCookie.java │ │ │ │ ├── AddSession.java │ │ │ │ ├── DeleteCookie.java │ │ │ │ └── DeleteSession.java │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── web.xml │ │ │ ├── hello_cookie.jsp │ │ │ ├── hello_session.jsp │ │ │ └── index.jsp │ │ └── tomcat │ │ └── index.md ├── java │ ├── index.md │ ├── javase │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── luguosong │ │ │ ├── basic │ │ │ ├── ArithmeticDemo.java │ │ │ ├── ArrayCopyDemo.java │ │ │ ├── ArrayCopyOfDemo2.java │ │ │ ├── ArrayDemo.java │ │ │ ├── BitDemo.java │ │ │ ├── BlockDemo.java │ │ │ ├── BreakDemo.java │ │ │ ├── BreakWithLabelDemo.java │ │ │ ├── ComparisonDemo.java │ │ │ ├── ConcatDemo.java │ │ │ ├── ConditionalDemo1.java │ │ │ ├── ConditionalDemo2.java │ │ │ ├── ContinueDemo.java │ │ │ ├── ContinueWithLabelDemo.java │ │ │ ├── DoWhileDemo.java │ │ │ ├── EnhancedForDemo.java │ │ │ ├── ForDemo.java │ │ │ ├── IfElseDemo.java │ │ │ ├── InstanceofDemo.java │ │ │ ├── MultiDimArrayDemo.java │ │ │ ├── PrePostDemo.java │ │ │ ├── StringSwitchDemo.java │ │ │ ├── SwitchDemo.java │ │ │ ├── SwitchDemo2.java │ │ │ ├── SwitchDemoFallThrough.java │ │ │ ├── UnaryDemo.java │ │ │ ├── WhileDemo.java │ │ │ └── index.md │ │ │ ├── index.md │ │ │ ├── object_oriented │ │ │ └── index.md │ │ │ ├── overview │ │ │ └── index.md │ │ │ └── reflection │ │ │ └── index.md │ ├── log │ │ ├── basic │ │ │ └── index.md │ │ └── index.md │ └── test │ │ ├── index.md │ │ └── junit │ │ ├── index.md │ │ └── junit5-demo │ │ ├── pom.xml │ │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── luguosong │ │ │ │ │ └── junit5demo │ │ │ │ │ └── util │ │ │ │ │ └── Calculator.java │ │ │ └── resources │ │ │ │ └── application.properties │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── luguosong │ │ │ └── junit5demo │ │ │ ├── DisplayNameTest.java │ │ │ ├── HelloTest.java │ │ │ ├── LifecycleTest.java │ │ │ ├── assertions │ │ │ ├── AssertEqualsTest.java │ │ │ ├── AssertThrowsTest.java │ │ │ ├── AssertTimeoutPreemptivelyTest.java │ │ │ ├── AssertTimeoutTest.java │ │ │ └── AssertTrueTest.java │ │ │ └── assume │ │ │ ├── AssumeTrueTest.java │ │ │ └── AssumingThatTest.java │ │ └── target │ │ └── classes │ │ └── application.properties ├── math │ ├── basic │ │ └── index.md │ ├── index.md │ └── latex │ │ └── index.md ├── other │ ├── history │ │ ├── chinese_history │ │ │ └── index.md │ │ └── index.md │ ├── idea │ │ └── index.md │ ├── index.md │ ├── mathjax │ │ ├── formulas │ │ │ └── index.md │ │ └── index.md │ ├── potplayer │ │ └── index.md │ ├── website_building │ │ ├── code │ │ │ └── demo.json │ │ ├── demo.md │ │ ├── img │ │ │ └── demo.jpg │ │ ├── index.md │ │ └── website_building.md │ └── windows_cmd │ │ └── index.md ├── resources.md └── topics │ ├── cryptography │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── luguosong │ │ └── index.md │ ├── design_pattern │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── luguosong │ │ ├── behavioral │ │ ├── chain_of_responsibility │ │ │ ├── Demo.java │ │ │ ├── index.md │ │ │ ├── middleware │ │ │ │ ├── Middleware.java │ │ │ │ └── impl │ │ │ │ │ ├── RoleCheckMiddleware.java │ │ │ │ │ ├── ThrottlingMiddleware.java │ │ │ │ │ └── UserExistsMiddleware.java │ │ │ └── server │ │ │ │ └── Server.java │ │ └── index.md │ │ ├── creational │ │ └── index.md │ │ ├── index.md │ │ ├── overview │ │ ├── index.md │ │ └── simuduck │ │ │ ├── edition1 │ │ │ ├── Duck.java │ │ │ ├── MallardDuck.java │ │ │ └── RedheadDuck.java │ │ │ └── edition2 │ │ │ ├── DecoyDuck.java │ │ │ ├── Duck.java │ │ │ ├── Flyable.java │ │ │ ├── MallardDuck.java │ │ │ ├── Quackable.java │ │ │ ├── RedheadDuck.java │ │ │ └── RubberDuck.java │ │ └── structural │ │ ├── index.md │ │ └── proxy │ │ ├── dynamic_proxy_cglib │ │ ├── Test.java │ │ └── UserServiceImpl.java │ │ ├── dynamic_proxy_jdk │ │ ├── Test.java │ │ ├── UserService.java │ │ └── UserServiceImpl.java │ │ ├── index.md │ │ └── static_proxy │ │ ├── Test.java │ │ ├── UserService.java │ │ ├── UserServiceImpl.java │ │ └── UserServiceProxy.java │ ├── docker │ ├── build │ │ └── index.md │ ├── compose │ │ ├── compose-file-reference │ │ │ ├── index.md │ │ │ ├── services-top-level-elements │ │ │ │ └── index.md │ │ │ └── volumes-top-level-element │ │ │ │ └── index.md │ │ └── index.md │ ├── engine │ │ ├── index.md │ │ └── storage │ │ │ ├── index.md │ │ │ └── volumes │ │ │ └── index.md │ └── index.md │ ├── git │ ├── basic │ │ └── index.md │ └── index.md │ ├── index.md │ ├── itext-signatures │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── luguosong │ │ │ ├── chapter01_understanding_the_concept_of_digital_signatures │ │ │ ├── DigestBC.java │ │ │ ├── DigestDefault.java │ │ │ ├── EncryptDecrypt.java │ │ │ └── index.md │ │ │ ├── chapter02_pdf_and_digital_signatures │ │ │ ├── CreateEmptyField.java │ │ │ ├── SignEmptyField.java │ │ │ ├── SignHelloWorld.java │ │ │ ├── SignHelloWorldWithTempFile.java │ │ │ └── index.md │ │ │ ├── chapter03_certificate_authorities_certificate_revocation_and_time_stamping │ │ │ └── index.md │ │ │ ├── chapter04_creating_signatures_externally │ │ │ └── index.md │ │ │ ├── chapter05_validation_of_signed_documents │ │ │ └── index.md │ │ │ └── index.md │ │ └── resources │ │ ├── C2_01_SignHelloWorld │ │ └── hello_signed.pdf │ │ ├── C2_02_SignHelloWorldWithTempFile │ │ └── hello_signed.pdf │ │ ├── C2_03_SignEmptyField │ │ └── hello_signed.pdf │ │ ├── C2_04_CreateEmptyField │ │ └── hello_empty.pdf │ │ ├── hello.pdf │ │ ├── hello_to_sign.pdf │ │ └── ks │ ├── linux │ ├── basic │ │ ├── 01-overview │ │ │ └── index.md │ │ └── index.md │ ├── file_directory │ │ └── index.md │ ├── index.md │ ├── shell │ │ └── index.md │ ├── system_administrator │ │ └── index.md │ └── user_management │ │ └── index.md │ ├── maven │ ├── base │ │ ├── index.md │ │ └── maven-hello │ │ │ └── pom.xml │ └── index.md │ ├── object-store │ ├── index.md │ └── minio │ │ ├── index.md │ │ └── minio-demo │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── upda │ │ │ │ └── miniodemo │ │ │ │ ├── MinioDemoApplication.java │ │ │ │ └── config │ │ │ │ └── Config.java │ │ └── resources │ │ │ ├── application.properties │ │ │ └── sample.txt │ │ └── test │ │ └── java │ │ └── com │ │ └── upda │ │ └── miniodemo │ │ ├── BucketTest.java │ │ ├── MinioDemoApplicationTests.java │ │ └── ObjectTest.java │ ├── sql │ ├── dcl.md │ ├── ddl.md │ ├── dml.md │ ├── environment_building.md │ └── index.md │ └── tools │ ├── frp │ └── index.md │ └── index.md ├── mkdocs.yml ├── overrides ├── main.html └── partials │ └── comments.html ├── pom.xml └── qodana.yaml /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: 创建报告以帮助我们改进 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **描述此错误** 11 | 对这个错误的清晰简明描述。 12 | 13 | **重现** 14 | 重现该行为的步骤: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **预期行为** 21 | 对您期望发生的事情进行清晰简明的描述。 22 | 23 | **截图** 24 | 如果适用,请添加截图以帮助说明您的问题。 25 | 26 | **Desktop (请填写以下信息):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (请填写以下信息):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **附加背景信息** 38 | 请在此添加有关问题的其他背景信息 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/just-the-docs/just-the-docs/discussions 5 | about: Ask questions and discuss with other community members 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: 为这个项目提出一个想法 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **您的功能请求是否与某个问题相关?请描述。** 11 | 清晰简明地描述问题是什么。例如,我总是感到沮丧,当[…] 12 | 13 | **请描述您希望的解决方案** 14 | 你希望发生的事情的清晰简明描述。 15 | 16 | **描述你已经考虑过的替代方案** 17 | 对您所考虑的任何替代解决方案或功能进行清晰简明的描述。 18 | 19 | **额外的上下文** 20 | 在此添加有关功能请求的任何其他上下文或截图。 21 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "10:00" 8 | open-pull-requests-limit: 10 9 | - package-ecosystem: bundler 10 | directory: "/" 11 | schedule: 12 | interval: daily 13 | time: "10:00" 14 | open-pull-requests-limit: 10 15 | -------------------------------------------------------------------------------- /code/CNAME: -------------------------------------------------------------------------------- 1 | www.luguosong.com 2 | -------------------------------------------------------------------------------- /code/assert/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/assert/logo.gif -------------------------------------------------------------------------------- /code/basic/computer_architecture_principles/02-data-representation-and-operations/index.md: -------------------------------------------------------------------------------- 1 | # 数据的表示和运算 2 | -------------------------------------------------------------------------------- /code/basic/computer_architecture_principles/03-memory/index.md: -------------------------------------------------------------------------------- 1 | # 存储器 2 | -------------------------------------------------------------------------------- /code/basic/computer_architecture_principles/04-instruction-set/index.md: -------------------------------------------------------------------------------- 1 | # 指令系统 2 | -------------------------------------------------------------------------------- /code/basic/computer_architecture_principles/05-cpu/index.md: -------------------------------------------------------------------------------- 1 | # 中央处理器 2 | -------------------------------------------------------------------------------- /code/basic/computer_architecture_principles/06-bus-and-io-system/index.md: -------------------------------------------------------------------------------- 1 | # 总线和I/O系统 2 | -------------------------------------------------------------------------------- /code/basic/computer_network/application_http/index.md: -------------------------------------------------------------------------------- 1 | # 应用层-HTTP协议 2 | 3 | ## 请求概述 4 | 5 | ## 请求行 6 | 7 | ### 示例 8 | 9 | ```text 10 | POST /aaa/bbb HTTP/1.1 11 | ``` 12 | 13 | ### 请求类型 14 | 15 | ### URI 16 | 17 | URI表示统一资源标识符,表示请求的资源路径 18 | 19 | ## 请求头 20 | 21 | ## 请求体 22 | -------------------------------------------------------------------------------- /code/basic/computer_network/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/network 3 | --- 4 | 5 | # 计算机网络 6 | -------------------------------------------------------------------------------- /code/basic/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/apps 3 | --- 4 | 5 | # 基础知识 6 | -------------------------------------------------------------------------------- /code/basic/operating_system/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/linux 3 | --- 4 | 5 | # 操作系统 6 | -------------------------------------------------------------------------------- /code/custom/css/font.css: -------------------------------------------------------------------------------- 1 | @import "https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.1.0/style.css"; 2 | 3 | :root { 4 | --md-text-font: "LXGW WenKai Mono"; 5 | } 6 | -------------------------------------------------------------------------------- /code/custom/js/katex.js: -------------------------------------------------------------------------------- 1 | document$.subscribe(({ body }) => { 2 | renderMathInElement(body, { 3 | delimiters: [ 4 | { left: "$$", right: "$$", display: true }, 5 | { left: "$", right: "$", display: false }, 6 | { left: "\\(", right: "\\)", display: false }, 7 | { left: "\\[", right: "\\]", display: true } 8 | ], 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /code/custom/js/viewer-js-init.js: -------------------------------------------------------------------------------- 1 | document$.subscribe(async function () { 2 | // 遍历所有figure标签 3 | const figures = document.querySelectorAll('figure'); 4 | figures.forEach((figure, index) => { 5 | new Viewer(figure); 6 | }); 7 | }) 8 | 9 | 10 | -------------------------------------------------------------------------------- /code/document-translation/css-the-definitive-guide/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/book 3 | --- 4 | 5 | # CSS权威指南 6 | 7 | 8 | -------------------------------------------------------------------------------- /code/document-translation/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/translate 3 | --- 4 | 5 | # 文档翻译 6 | -------------------------------------------------------------------------------- /code/document-translation/junit5-user-guide/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/book 3 | --- 4 | 5 | # JUnit 5 用户指南 6 | 7 | 版本 5.12.1 8 | 9 | --- 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /code/document-translation/spring-framework/02-core-technologies/01-the-ioc-container/01-introduction/index.md: -------------------------------------------------------------------------------- 1 | # Spring IoC 容器与 Bean 简介 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-framework/02-core-technologies/01-the-ioc-container/02-basics/index.md: -------------------------------------------------------------------------------- 1 | # 容器概述 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-framework/02-core-technologies/01-the-ioc-container/index.md: -------------------------------------------------------------------------------- 1 | # IOC容器 2 | 3 | 本章介绍了 Spring 的控制反转(IoC)容器。 4 | -------------------------------------------------------------------------------- /code/document-translation/spring-framework/02-core-technologies/index.md: -------------------------------------------------------------------------------- 1 | # 核心技术 2 | 3 | 这部分参考文档涵盖了所有对 Spring 框架至关重要的技术。 4 | 5 | 其中最重要的是 Spring 框架的`控制反转(IoC)`容器。文档首先对 Spring 框架的 IoC 容器进行了详细讲解,随后深入介绍了 Spring 的`面向切面编程(AOP)`技术。Spring 框架拥有自己的 AOP 框架,该框架在概念上易于理解,并成功满足了 Java 企业编程中 80% 的 AOP 需求。 6 | 7 | 此外,文档还介绍了 Spring 与 `AspectJ` 的集成(目前在功能丰富性和成熟度方面是 Java 企业领域最强大的 AOP 实现)。 8 | 9 | 同时,`AOT`(提前编译)处理也可以用于优化应用程序,通常用于通过 GraalVM 部署原生镜像。 10 | -------------------------------------------------------------------------------- /code/document-translation/spring-framework/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/book 3 | --- 4 | 5 | Spring Framework 6.2.5官方文档 6 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part1_say_hello_to_spring_security/index.md: -------------------------------------------------------------------------------- 1 | # 第一部分:Spring Security入门 2 | 3 | 准备好深入探索 Spring Security 的世界了吗?让我们一起踏上这段旅程吧!在本书的开篇部分,我们将为后续内容打下坚实的基础。 4 | 5 | 第一章将带你初识Spring Security的世界。随着章节的深入,我们会进一步探讨软件安全的本质,尝试解答诸如`什么是软件安全?`以及`为什么软件安全至关重要?`等关键问题。此外,我们还会梳理本书的学习路线,帮助你明确在接下来的学习中可以期待哪些内容。 6 | 7 | 第二章将是一场实战体验。我们会从创建你的第一个 Spring 项目开始。如果你曾经好奇 Spring Security 的架构和类设计,本章将为你提供一个全局视角。但内容远不止于此。本书还将带你深入了解如何重写默认配置,包括自定义用户信息、在不同端点增强授权、探索多种配置方式、定义专属的认证逻辑,以及高效利用多个配置类。 8 | 9 | 在完成本部分内容后,你不仅能够扎实掌握 Spring Security 的理论基础,还能实际开发出一个经过安全防护的应用。这将帮助你在短时间内既理解`为什么`,又精通`怎么做`。 10 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex1/src/main/java/com/luguosong/ssiach3ex1/SsiaCh3Ex1Application.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex1; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SsiaCh3Ex1Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SsiaCh3Ex1Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex1/src/main/java/com/luguosong/ssiach3ex1/controller/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex1.controller; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | /** 7 | * @author luguosong 8 | */ 9 | @RestController 10 | public class HelloController { 11 | @GetMapping("/hello") 12 | public String hello() { 13 | return "Hello!"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex1/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=ssia-ch3-ex1 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex1/src/test/java/com/luguosong/ssiach3ex1/SsiaCh3Ex1ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex1; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SsiaCh3Ex1ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex2/src/main/java/com/luguosong/ssiach3ex2/SsiaCh3Ex2Application.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex2; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SsiaCh3Ex2Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SsiaCh3Ex2Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex2/src/main/java/com/luguosong/ssiach3ex2/controllers/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex2.controllers; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class HelloController { 8 | 9 | @GetMapping("/hello") 10 | public String hello() { 11 | return "Hello!"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.datasource.url=jdbc:h2:mem:ssia 2 | spring.datasource.username=sa 3 | spring.datasource.password= 4 | spring.sql.init.mode=always 5 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex2/src/main/resources/data.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO `spring`.`authorities` (username, authority) VALUES ('john', 'write'); 2 | INSERT INTO `spring`.`users` (username, password, enabled) VALUES ('john', '12345', '1'); 3 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex2/src/main/resources/schema.sql: -------------------------------------------------------------------------------- 1 | create schema spring; 2 | 3 | CREATE TABLE IF NOT EXISTS `spring`.`users` ( 4 | `id` INT NOT NULL AUTO_INCREMENT, 5 | `username` VARCHAR(45) NULL, 6 | `password` VARCHAR(45) NULL, 7 | `enabled` INT NOT NULL, 8 | PRIMARY KEY (`id`)); 9 | 10 | CREATE TABLE IF NOT EXISTS `spring`.`authorities` ( 11 | `id` INT NOT NULL AUTO_INCREMENT, 12 | `username` VARCHAR(45) NULL, 13 | `authority` VARCHAR(45) NULL, 14 | PRIMARY KEY (`id`)); 15 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex2/src/test/java/com/luguosong/ssiach3ex2/SsiaCh3Ex2ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex2; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SsiaCh3Ex2ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex3/src/main/java/com/luguosong/ssiach3ex3/SsiaCh3Ex3Application.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex3; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SsiaCh3Ex3Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SsiaCh3Ex3Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex3/src/main/java/com/luguosong/ssiach3ex3/controllers/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex3.controllers; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class HelloController { 8 | 9 | @GetMapping("/hello") 10 | public String hello() { 11 | return "Hello!"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex3/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.ldap.embedded.ldif=classpath:server.ldif 2 | spring.ldap.embedded.base-dn=dc=springframework,dc=org 3 | spring.ldap.embedded.port=33389 4 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex3/src/main/resources/server.ldif: -------------------------------------------------------------------------------- 1 | dn: dc=springframework,dc=org 2 | objectclass: top 3 | objectclass: domain 4 | objectclass: extensibleObject 5 | dc: springframework 6 | 7 | dn: ou=groups,dc=springframework,dc=org 8 | objectclass: top 9 | objectclass: organizationalUnit 10 | ou: groups 11 | 12 | dn: uid=john,ou=groups,dc=springframework,dc=org 13 | objectclass: top 14 | objectclass: person 15 | objectclass: organizationalPerson 16 | objectclass: inetOrgPerson 17 | cn: John 18 | sn: John 19 | uid: john 20 | userPassword: 12345 -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/03_managing_users/ssia-ch3-ex3/src/test/java/com/luguosong/ssiach3ex3/SsiaCh3Ex3ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach3ex3; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SsiaCh3Ex3ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex1/src/main/java/com/luguosong/ssiach5ex1/SsiaCh5Ex1Application.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex1; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SsiaCh5Ex1Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SsiaCh5Ex1Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex1/src/main/java/com/luguosong/ssiach5ex1/controllers/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex1.controllers; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class HelloController { 8 | 9 | @GetMapping("/hello") 10 | public String hello() { 11 | return "Hello!"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex1/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=ssia-ch5-ex1 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex1/src/test/java/com/luguosong/ssiach5ex1/SsiaCh5Ex1ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex1; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SsiaCh5Ex1ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex2/src/main/java/com/luguosong/ssiach5ex2/SsiaCh5Ex2Application.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex2; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SsiaCh5Ex2Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(SsiaCh5Ex2Application.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex2/src/main/java/com/luguosong/ssiach5ex2/controllers/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex2.controllers; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class HelloController { 8 | 9 | @GetMapping("/hello") 10 | public String hello() { 11 | return "Hello!"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex2/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=ssia-ch5-ex2 2 | authorization.key=SD9cICjl1e 3 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex2/src/test/java/com/luguosong/ssiach5ex2/SsiaCh5Ex2ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex2; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SsiaCh5Ex2ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex3/src/main/java/com/luguosong/ssiach5ex3/SsiaCh5Ex3Application.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex3; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SsiaCh5Ex3Application { 8 | public static void main(String[] args) { 9 | SpringApplication.run(SsiaCh5Ex3Application.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex3/src/main/java/com/luguosong/ssiach5ex3/controllers/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex3.controllers; 2 | 3 | import org.springframework.web.bind.annotation.GetMapping; 4 | import org.springframework.web.bind.annotation.RestController; 5 | 6 | @RestController 7 | public class HelloController { 8 | 9 | @GetMapping("/hello") 10 | public String hello() { 11 | return "Hello!"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex3/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=ssia-ch5-ex3 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/05_begins_with_filters/ssia-ch5-ex3/src/test/java/com/luguosong/ssiach5ex3/SsiaCh5Ex3ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.luguosong.ssiach5ex3; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class SsiaCh5Ex3ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part2_configuring_authentication/index.md: -------------------------------------------------------------------------------- 1 | # 第二部分:配置身份认证 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part3_configuring_authorization/07_configuring_endpoint_level_authorization_restricting_access/index.md: -------------------------------------------------------------------------------- 1 | # 配置端点级授权:限制访问 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part3_configuring_authorization/index.md: -------------------------------------------------------------------------------- 1 | # 第三部分:配置授权 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part4_implementing_oAuth2_and_openid_connect/index.md: -------------------------------------------------------------------------------- 1 | # 第四部分:实施OAuth 2和OpenID Connect 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part5_going_reactive/index.md: -------------------------------------------------------------------------------- 1 | # 第五部分:响应式 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-security-in-action2/part6_testing_security_configurations/index.md: -------------------------------------------------------------------------------- 1 | # 第六部分:测试安全配置 2 | -------------------------------------------------------------------------------- /code/document-translation/spring-start-here/part1/03-wiring-beans/index.md: -------------------------------------------------------------------------------- 1 | # Bean装配 2 | 3 | 本章内容包括: 4 | 5 | - 建立 Bean 之间的关系 6 | - 使用依赖注入 7 | - 通过依赖注入从 Spring 容器中获取 Bean 8 | -------------------------------------------------------------------------------- /code/document-translation/spring-start-here/part1/index.md: -------------------------------------------------------------------------------- 1 | # 第一部分 2 | 3 | 任何建筑都离不开地基,框架也同样如此。在第一部分,你将学习如何使用支撑 Spring 框架的基础组件——Spring 上下文和 Spring 切面。随着阅读的深入,你会发现,Spring 的所有功能都是建立在这些核心组件之上的。 4 | -------------------------------------------------------------------------------- /code/document-translation/spring-start-here/part2/index.md: -------------------------------------------------------------------------------- 1 | # 第二部分 2 | -------------------------------------------------------------------------------- /code/english/grammar/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: simple/grammarly 3 | --- 4 | 5 | # 语法 6 | -------------------------------------------------------------------------------- /code/english/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/account-voice 3 | --- 4 | 5 | # 英语学习笔记 6 | -------------------------------------------------------------------------------- /code/english/new_concept_english/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: material/book-edit 3 | --- 4 | 5 | # 新概念英语单词 6 | -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/aɪ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/aɪ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/b.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/b.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/d.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/d.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/e.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/e.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/eɪ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/eɪ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/g.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/g.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/iː.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/iː.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/k.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/k.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/p.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/p.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/t.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/t.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/uː.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/uː.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/æ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/æ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ɑː.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ɑː.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ɒ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ɒ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ɔː.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ɔː.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ə.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ə.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/əʊ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/əʊ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ɜː.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ɜː.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ɪ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ɪ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ʊ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ʊ.mp3 -------------------------------------------------------------------------------- /code/english/phonetic_symbol/mp3/ʌ.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luguosong/programming-notes/c549dbcd02c50ba958ca87b4c6d07c2d023201fa/code/english/phonetic_symbol/mp3/ʌ.mp3 -------------------------------------------------------------------------------- /code/english/programming_vocabulary/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: octicons/code-16 3 | --- 4 | 5 | # 编程词汇 6 | 7 | ## 基础知识 8 | 9 | ## 前端 10 | 11 | ### Redux 12 | 13 | #### reduce 14 | 15 | - 原本意思:减少 16 | - js数组函数:归约、累积 17 | 18 | #### reducer 19 | 20 | - 状态更新函数、状态归约器 21 | 22 | #### store 23 | 24 | - 储藏 25 | - 状态存储器 26 | 27 | #### dispatch 28 | 29 | - 调度 30 | 31 | #### selector 32 | 33 | - 选择器 34 | 35 | #### immutability 36 | 37 | - 不变,不变性,永恒性 38 | 39 | #### mutable 40 | 41 | - 易变的,性情不定的 42 | 43 | #### slice 44 | 45 | - 切片、状态切片 46 | 47 | ## Java 48 | 49 | ## 专项研究 50 | -------------------------------------------------------------------------------- /code/front-end/code_bundler/webpack/index.md: -------------------------------------------------------------------------------- 1 | # webpack 2 | 3 | ## 概述 4 | 5 | 本质上,webpack是一个用于现代JavaScript应用程序的`静态模块打包工具`。 6 | 7 | 当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个`依赖图(dependency graph)`,然后将你项目中所需的每一个模块组合成一个或多个 `bundles`,它们均为静态资源,用于展示你的内容。 8 | -------------------------------------------------------------------------------- /code/front-end/css/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | icon: simple/css3 3 | --- 4 | 5 | # CSS 6 | 7 | ## 书籍和教程 8 | 9 |
10 | ![](https://cdn.jsdelivr.net/gh/luguosong/images@master/blog-img/202405061631096.png){ loading=lazy } 11 |
CSS权威指南(第四版)
12 |
13 | -------------------------------------------------------------------------------- /code/front-end/html/basic/auxiliary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 其它标签 6 | 12 | 13 | 14 |

其它标签

15 | 16 |

br标签:换行

17 |

这是第一行
这是第二行

18 | 19 |

hr标签:水平线

20 |

这是第一行

21 |
22 |

这是第二行

23 | 24 |

pre标签:按原文显示

25 |
26 |   **********
27 |    ********
28 |     ******
29 |      ****
30 |       **
31 | 
32 | 33 | 34 | -------------------------------------------------------------------------------- /code/front-end/html/basic/comment.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 注释 6 | 7 | 8 |

注释

9 | 10 | 注释是不会渲染的,可以用来做说明和解释 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /code/front-end/html/basic/entity.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 字符实体 6 | 7 | 8 |

字符实体

9 |

空格

10 |

空格     空格

11 |

小于号

12 |

小于号<小于号

13 |

大于号

14 |

大于号>大于号

15 | 16 | 17 | -------------------------------------------------------------------------------- /code/front-end/html/basic/frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 框架标签 6 | 7 | 8 |

框架标签

9 | 10 |

嵌入网页

11 |