SpringBoot和mongodb开发需要使用到的注解和属性

在接触Spring的时候就接触了@Component(用于将所标注的类加载到Spring环境中,需要在xml文件中搭配<component-scan/>使用;作用是标识这个类为组件,由Spring管理;当组件不好归类时,也就是不属于controller,service,dao三类组件的时候使用@Component;将被标识的类实例化到Spring容器中,相当于配置文件中的<bean id=" " class=" " />)及其扩展注解分别标识mvc三层的注解@Controller(标识修饰控制层组件),@Service(标识修饰业务层组件),@Repository(标识修饰持久层组件)

但在SpringBoot中有个注解@RestController,它的功能相当于@Controller和@ResponseBody(将json对象转化为json字符串传回给前台)


用@Configuration(这个注解的作用是用于取代XML来配置Spring)注解的配置类,等价于XML中配置<beans></beans>;用@Bean标注方法等价于XML中配置的<bean></bean> 

@ConfigurationProperties(prefix = "c3p0", ignoreUnknownFields = false) 该注解用于绑定属性。prefix用来选择属性的前缀,也就是在,例如:app.properties

(c3p0.jdbcUrl=jdbc:mysql://localhost:3306/test
c3p0.user=root
c3p0.password=123456
c3p0.driverClass=com.mysql.jdbc.Driver)

spring.redis.cluster.host=192.168.6.36
spring.redis.cluster.port=6379
spring.redis.cluster.passwd=
spring.redis.cluster.timeOut=2000
spring.redis.cluster.max-redirects=8

文件中的“c3p0”开头的属性,ignoreUnknownFields是用来告诉SpringBoot在有属性不能匹配到声明的域时抛出异常。 

@PropertySource("classpath:config/app.properties") 配置文件路径 ,bootstrap.properties和application.properties是默认可以读取的配置文件

@Data 这个是一个lombok注解,用于生成getter&setter方法,详情请查阅lombok相关资料 


常见的@Bean的配置注解:@Lazy,@DependsOn,@Scope,@Qualifier(指定注入bean的名称),@Primary(控制被标识的实例优先与其他实例被注入)

1,@Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与标注的方法名相同;

2,@Bean注解默认作用域为单例singleton作用域,可通过@Scope("prototype")设置为原型作用域;


在@Configuration中@Bean配合@Qualifier使用

@Bean(name = "dataSource")
@Qualifier(value = "dataSource2")可以翻译成XML配置文件中的
<bean id = "dataSource" class = "">
<qualifier value = "dataSource2"/> //指定了<qualifier>标签
</bean>


<qualifier>标签指定的限定标识符只能被@Qualifier使用


然后再通过
@Autowired 
@Qualifier(value = "dataSource2")

来指定限定标识符注入


正常情况下,在Bean上没有指定<qualifier>标签时

@Bean(name = "dataSource")

可以翻译成XML配置文件中的

<bean id = "dataSource" class = ""></bean>


默认情况下(没指定<qualifier>标签)@Qualifier的value属性将匹配Bean标识符


然后可以通过
@Autowired 
@Qualifier(value = "dataSource")

来指定限定标识符注入


常见的依赖注入注解:@Autowired:自动装配,@Value:注入SpEL表达式(

@Value("${spring.redis.cluster.host}")
private String redisHost;

),

@Qualifier:限定描述符,@resource:自动装配,@PostConstruct:通过注解指定初始化定义,@PreDestroy:通过注解指定销毁方法定义





控制层:




如上图:@requestMapping("/product")的作用是设置一段请求路径,如需要调用create()方法,前端请求的路径必须是"/product/createUuid"

如上图:@AutoWired,他是Spring里面的起到域属性自动注入的作用,还有一个注解也有相同的作用,那就是jdk里面的@Resource

域属性自动注入分byType和byName两种,上图的事byType类型的,如需使用byName,则还需要一个注解@Component,他是用于某个类上的,作用是代表那个类是一个组件,如下图:




byName类型如下图:




name的值就是@Comment这个注解定义的值






如上图:@RequestBody的作用是将前端传入的json字符串转化为json对象;还有个的作用正好相反,他是@ResponseBody,他的作用是将json对象转化为json字符串

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值