SpringBoot开发步骤详解以及入门Demo

xiaoxiao2021-02-28  35

什么是spring boot

Spring Boot是由Pivotal团队提供的全新框架, 其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 spring boot是为了简化spring应用开发的一门技术,它 一般是和我们的项目构建工具maven或者gradle一起使用。 它提供四大特性: 起步依懒、自动配置、运行監控、CLI spring boot 是一种让开发者可以轻松快速快乐开发可以独立运行的spring应用程序的一种技术。

开发四步曲

        1、编写一个Java类,并且这个类上面有@Configuration代表这是一个配置类 2、在Java配置文件中要配置组件扫描@ComponentScan("cn.guyue") 如果不指定包就以配置类的包作为要扫描的包 3、手动配置Bean、和手动注入

@Bean public MController mcontroller(){ MController mController = new MController(); mController.setMservice(mservice()); return mController; } @Bean public MService mservice(){ MService mService = new MService(); mService.setMdao(mdao()); return mService; } @Bean public MDao mdao(){ return new MDao(); }

4、一定要使用AnnotationConfigApplicationContext(Application.class);

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Application.class); MController mController = applicationContext.getBean(MController.class); System.out.println(mController);

需求使用spring boot开发CRM列表

准备环境 * 建spring boot项目: STS ---> new  ----> spring boot starter project * 项目结构: |src/main/java   //放Java代码文件 | ---- Application.java ---启动类(main方法) | ---- |src/main/resource   //放配置文件,静态资源,模板文件 | ----static       放静态资源 html , css , js | ----templates    放模板文件 freemarker,thymeleaf | ----application.properties  配置文件 src/main/test | | src/main/webapp | ----WEB-INF/jsp   (放jsp) | pom.xml * 编写一个Controller * 运行项目:java run ---> spring boot run ---> maven run --> package jar run

* 运行原理分析

//@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})//这个注解等价于@Configuration + @ComponentScan + @EnableAutoConfiguration @Configuration //代表这个是一个配置类 @ComponentScan //开启组件扫描,扫描我的当前包 cn.guyue @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) //开启自动配置 public class SpringBootCrmApplication { public static void main(String[] args) { SpringApplication.run(SpringBootCrmApplication.class, args); //启动一个tomcat,布署了当前项目(localhost:8080/), 自动配置springmvc前端控制器,加载了spring容器, //并且吧SpringBootCrmApplication.class作为spring的配置文件初始化容器 } } SpringApplication.run(SpringBootCrmApplication.class, args); //1、启动tomcat //2、布署当前项目 //3、加载spring容器 SpringBootCrmApplication作为配置文件 //4、配置springmvc DispatcherServlet SpringBootCrmApplication作用 * 作为spring boot的启动类 * 作为spring容器配置文件 @SpringBootApplication注解等价于//这个注解等价于@Configuration + @ComponentScan + @EnableAutoConfiguration 有三层意思: 1、代表这是一个配置类 2、开启包扫描 3、开启自动配置 * 添加jsp支持:(CRM页面准备)

添加依懒

                <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> 配置前缀和后缀 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp 创建webapp/WEB-INF/jsp 存放jsp * 拷POJO * 实现案例 * 准备前台页面 * 编写Controller * 编写Service * 编写Dao (添加mybatis起步依懒,配置数据库连接信息,配置SqlSessionFactory) 添加mybatis起步依懒 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> 配置数据库连接信息

配置连接信息:application.properties

 mybatis.type-aliases-package=com.neo.entity spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8 spring.datasource.username = root spring.datasource.password = root 自动配置 Datasource和SqlSessionFactory 编写Mapper 添加MapperScan  @MapperScan("cn.guyue.mapper") * 起步依懒和自动配置 起步依懒: 也是一个maven项目, 坐标取名: spring boot公司提供起步依懒:spring-boot-starter-xxx mybatis 自已提供的起步依懒: xxx-spring-boot-starter 一般情况下spring boot项目都是继承自                 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> 并且提供了一个统一的版本管理   自动配置: @EnableAutoConfiguration 开启自动配置功能

****核心注解****

spring 4.0 提供新功能,条件化配置,条件配置 spring.factories文件里每一个xxxAutoConfiguration文件一般都会有下面的条件注解: @ConditionalOnBean:当容器里有指定Bean的条件下 @ConditionalOnClass:当类路径下有指定类的条件下 @ConditionalOnExpression:基于SpEL表达式作为判断条件 @ConditionalOnJava:基于JV版本作为判断条件 @ConditionalOnJndi:在JNDI存在的条件下差在指定的位置 @ConditionalOnMissingBean:当容器里没有指定Bean的情况下 @ConditionalOnMissingClass:当类路径下没有指定类的条件下 @ConditionalOnNotWebApplication:当前项目不是Web项目的条件下 @ConditionalOnProperty:指定的属性是否有指定的值 @ConditionalOnResource:类路径是否有指定的值 @ConditionalOnSingleCandidate:当指定Bean在容器中只有一个,或者虽然有多个但是指定首选Bean @ConditionalOnWebApplication:当前项目是Web项目的条件下。 上面@ConditionalOnXXX都是组合@Conditional元注解,使用了不同的条件Condition
转载请注明原文地址: https://www.6miu.com/read-2623407.html

最新回复(0)