1导入springboot 启动器的maven包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-
新建一个主类并加上注解@SpringBootApplication
-
SpringApplication.run(类名.class,args)
-
resources下新建一个application.yml或者application.properties可以配置springboot
5.命令行 Tab自动补全
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
springboot的父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.5</version>
</parent>
springboot的爷项目
<properties>
<activemq.version>5.16.1</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.88</appengine-sdk.version>
<artemis.version>2.15.0</artemis.version>
<aspectj.version>1.9.6</aspectj.version>
<assertj.version>3.18.1</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<awaitility.version>4.0.3</awaitility.version>
<bitronix.version>2.1.4</bitronix.version>
里面定义了所有默认导入项目的版本号
主程序可返回spring上下文
ConfigurableApplicationContext run = SpringApplication.run(SpringbootStudy01Application.class, args);
String[] beanDefinitionNames = run.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println(beanDefinitionName);
}
}
使用@ComponentScan可扫描指定包
注解@Configuration --
两种模式full模式与lite模式
告诉springboot这是一个配置类 相当于spring中的xml文件
若proxyBeanMethods=false 则容器不保留实例
注解@Bean --
给容器添加组件。以方法名作为组件的id,或者@Bean('name'),指定name一个id,返回类型就是组件的类型,返回的值就是组件在容器中的实例。实际上是调用User里的set和构造方法将User托管放到springboot上
springboot组件是默认单例模式,配置类也是一个组件,外部拿到的永远是容器中的方法!
@Controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层
@Service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理
@Repository(实现dao访问) 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件 .
@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
@Repository需要用@MapperScan扫描mapper才能注入@Bean
而@Mapper注解相当于@Repository注解+@MapperScan注解,通过xml文件下的namespace命名空间自动注入bean
ConditionalOnBean 指定如果存在tom组件下面的装配才会生效!
注解中@Component和@Bean的区别
两者的目的是一样的,都是注册bean到Spring容器中 1、@Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。 2、@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。
区别: 1、@Component(@Controller、@Service、@Repository)通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。 2、而@Bean注解通常是我们在标有该注解的方法中定义产生这个bean的逻辑。 3、@Component 作用于类,@Bean作用于方法
spring3装配 https://www.cnblogs.com/wmyskxz/p/8830632.html
@ImportResource注解导入--beans.xml
@ConfigurationProperties注解
属性一一绑定即可以直接读取application.properties里的值。