常用注解

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
@Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用
@Autowired @Qualifier(“personDaoBean”) 存在多个实例配合使用

@GetMapping 组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写,该注解将HTTP Get 映射到 特定的处理方法上。即可以使用@GetMapping(value = “/hello”)来代替@RequestMapping(value=”/hello”,method= RequestMethod.GET)。即可以让我们精简代码。

@Configuration:声明一个类作为配置类,代替xml文件

@configuration注解内部被@component组件注解修饰,所以被@configuration修饰的类可以被ioc容器扫描,进行初始化,加载注解@PropertySource(value=”classpath:jdbc.properties”)内的外部资源文件,对类内的属性进行初始化,再对@Bean注解修饰的方法间接初始化,使用已经初始化的属性值

@Bean:声明在方法上,将方法的返回值加入Bean容器,代替标签

@Value:属性注入,@value注解注入值只能注入简单类型(普通数值、字符串),不能注入对象类型。所以被放弃使用

@PropertySource(value=”classpath:jdbc.properties”):指定外部属性文件

@PropertySource与@ConfigurationProperties

@PropertySource:加载指定的配置文件;可以给实体类进行属性注入使用单独的配置文件,不配置在主配置文件中。

@ConfigurationProperties(prefix = "person"):将配置文件中配置的每一个属性的值,映射到这个组件中,将本类中的所有属性和配置文件中相关的配置进行绑定;默认从全局配置文件中获取值

/**
* 将配置文件中配置的每一个属性的值,映射到这个组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
* prefix = "person":配置文件中哪个下面的所有属性进行一一映射
*
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
* @ConfigurationProperties(prefix = "person")默认从全局配置文件中获取值;
*
*/
@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;

大量配置都写在全局配置文件中不方便,根据具体情况编写对应的文件,例如对Person类进行属性注入,可以单独为Person类写一个配置文件,通过注解@PropertySource(value = {"classpath:person.properties"})将类与配置文件关联,进行属性注入。

@ImportResource

@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;(但是不推荐使用,推荐使用配置类方式)

Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;

想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上 ( 可以写在启动类上 )

@ImportResource(locations = {"classpath:beans.xml"}) // 导入Spring的配置文件让其生效
@SpringBootApplication
public class HomeSpringbootGuigu01Application {
public static void main(String[] args) {
SpringApplication.run(HomeSpringbootGuigu01Application.class, args);
}
}

编写Spring的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloService" class="com.atguigu.springboot.service.HelloService"></bean>
</beans>

但是:SpringBoot推荐给容器中添加组件的方式;推荐使用全注解的方式

1、配置类@Configuration-----替代----->Spring配置文件

2、使用@Bean给容器中添加组件

/**
* @Configuration:指明当前类是一个配置类;就是来替代之前的Spring配置文件
*
* 在配置文件中用<bean><bean/>标签添加组件
*
*/
@Configuration
public class MyAppConfig {
//将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名
@Bean
public HelloService helloService02(){
System.out.println("配置类@Bean给容器中添加组件了...");
return new HelloService();
}
}
posted @   Lz_蚂蚱  阅读(24)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起