system requirements
The differences between different versions of ssdss can be seen as follows:
ssdss1, look for the corresponding version, such as the latest version is 2.5.6, so we have to look at the requirements of the corresponding version.
ssdss2, click "Getting Started" to view related system requirements
ssdss 3. We found that the system requires Maven to be at least version 3.5 and jdk8 to be compatible with jdk17.
ssdssMaven configuration: (configure settings.xml under config in maven's file)
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> </profiles>
HelloWorld
ssdss requirements: browse send/hello requests, respond to Hello, World!.
The official documents are: https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.first-application
Create Maven Project
Introducing dependencies in pom files
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
Create Main Program
Write Logical Business
test
ssdss runs the main program with the following results:
We can see that Tomcat has run browser-side access on port 8080: http://localhost:8080/hello
Official address: https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.first-application.pom
Simplified configuration
Simplified configuration
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.5.6</version> </plugin> </plugins> </build>
ssdss executes maven's package command to jar the project directly to the target server. cmd executes packaged programs: (if tomcat is used, pack specifically into a war package)
java -jar boot-01-helloworld-1.0-SNAPSHOT.jar
ssdss: Sometimes the cmd command does not start the springboot project, probably because Quick Edit Mode is turned on in the properties. Cancel method: Right-click the title area above the window of the cmd console to open Options to uncheck Quick Edit Mode
Explanation of Automatic Configuration
Dependency Management
ssdss @ Parent project doing dependency management
<parent> Dependency Management <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> </parent> Parent project above <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.5.6</version> </parent> Almost all version numbers of dependencies commonly used in development are declared==>Automatic Version Arbitration Mechanism
ssdss # Develop Import starter Scene Launcher
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.5.6</version> <scope>compile</scope> </dependency>
ssdss1. See many spring-boot-starter-*:* referring to a scene.
ssdss2.As soon as starter is introduced, all the dependencies of the general needs of this scenario are automatically introduced.
ssdss3. SpringBoot All Supported Scenarios
ssdss4.See *-spring-boot-starter: Scene launcher for simplified development provided by third parties.
ssdss5.The bottom-most dependency of all scene launchers.
ssdss6.You can also create your own starter.
No need to care about version number, automatic version arbitration
ssdss1. Importing dependency defaults allows you to write no versions
ssdss2.Introduce jar for non-version arbitration, write version number.
Default version number can be modified
ssdss1. View the key in spring-boot-dependencies that specifies the version currently dependent on.
ssdss2. Rewrite key's configuration in the current project - Proximity first principle
1,See spring-boot-dependencies Which specifies the version currently dependent on key. 2,Rewrite in Current Project key Configuration <properties> <mysql.version>5.1.43</mysql.version> </properties>
View Auto-Configured Components
ssdss looks at which components are configured in the main program class:
/** * Main Program Class * @SpringBootApplication:On the main program, this is a SpringBoot application */ @SpringBootApplication public class MainApplication { public static void main(String[] args) { // View Auto-Configured Components // 1. Return to IoC container ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args); // 2. View the components inside the container String[] names = run.getBeanDefinitionNames(); for (String name:names ) { System.out.println(name); } } }
View Auto-Configured Components
ssdss automatically pairs Tomcat: Introduce Tomcat dependency. Configure Tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.5.6</version> </dependency>
ssdss Automatically Matches SpringMVC
sdssdss * Introduce Spring MVC Full Set of Components
ssddsss * Automatically pair Spring MVC common components (features)
ssdss automatically matches common web features such as character encoding issues SpringBoot helps us configure common scenarios for all web development
ssdss changes the scan path: @SpringBootApplication(scanBasePackages="com.atguigu") or @ComponentScan specifies the scan path
@SpringBootApplication = @SpringBootConfiguration ā˛•@EnableAutoConfigurationā˛• @ComponentScan("com.atguigu.boot")
ssdss has default values for various configurations
sdssdssssdss * Default configurations are ultimately mapped to MulyipartProperties
The value of the sdsssdss * configuration file is eventually bound to each class, which creates objects in the container
ssdss loads all automatic configurations on demand
Sdsssssdss * Very many starter s
Sdsssssdss * Introduce those scenes so that the automatic configuration of this scene is turned on
Sdsssssdss @ SpringBoot All autoconfigurations are in the spring-boot-autoconfigure package