【JAVA SpringBoot】编程模式之注解

@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注


@Autowired 自动注入,然后调用

@Resource和@Autowired都是做bean的注入时使用,但有的时候不可互替使用
@Primary是修饰实现类的,告诉spring,如果有多个实现类时,优先注入被@Primary注解修饰的那个

@Configuration //1使用配置注解 ,表示这个类是配置文件
@Bean //2spring调用这个方法直接把FunctionService这个类实例加入到spring容器中(注入作用)

@ComponentScan("com.wisely.highlight_spring4.ch1.di") //2使用扫描注解,通过包扫描,将包下所有注解类,注入到spring容器中 (已注入)

编码模式代码举例:

1.通过包扫描,将包下所有注解类,注入到spring容器中 
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration //1使用配置注解 ,表示这个类是配置文件
@ComponentScan("com.wisely.highlight_spring4.ch1.di") //2使用扫描注解
public class testConfig {
}
2.不使用扫描 ,注解。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration //1 表示配置文件 
public class testConfig {
  @Bean //2 spring调用这个方法直接把FunctionService这个类实例加入到spring容器中,并返回bean对象
  public FunctionService functionService(){
    return new FunctionService();
  }
}


//类中组件统一设置。满足当前条件,这个类中配置的所有bean注册才能生效;
@Conditional({WindowsCondition.class})


/**
 * 将配置文件中配置的每一个属性的值,映射到这个组件中
 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
 *   prefix = "person":配置文件中哪个下面的所有属性进行一一映射
 *
 * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
 *
 */

@RestController
@SpringBootApplication
  @ResponseBody

https://www.jb51.net/article/173048.htm

 

@Data 是来自于lombok的注解 加上它就不用再手动生成get set方法了
@Table 是来自import javax.persistence.Table;的注解,指定实体类User和t_user相互关联

@Id 是来自import javax.persistence.Table;的注解 标识这是主键

@KeySql(useGeneratedKeys = true) 是来自lombok的注解,表示是主键自增长

@Override是伪代码,表示重写。(当然不写@Override也可以),不过写上有如下好处: 
1、可以当注释用,方便阅读;
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错

@Conditional。该注解可以根据满足某一个特定条件与否来决定是否创建某个特定的Bean,例如,某个依赖包jar在一个类路径的时候,自动配置一个或多个Bean时,可以通过@Conditional注解来实现只有某个Bean被创建时才会创建另外一个Bean,这样就可以依据特定的条件来控制Bean的创建行为,这样的话我们就可以利用这样一个特性来实现一些自动的配置。

@ConditionalOnBean:当容器中有指定Bean的条件下进行实例化。

@ConditionalOnMissingBean:当容器里没有指定Bean的条件下进行实例化。

@ConditionalOnClass:当classpath类路径下有指定类的条件下进行实例化。

@ConditionalOnMissingClass:当类路径下没有指定类的条件下进行实例化。

@ConditionalOnWebApplication:当项目是一个Web项目时进行实例化。

@ConditionalOnNotWebApplication:当项目不是一个Web项目时进行实例化。

@ConditionalOnProperty:当指定的属性有指定的值时进行实例化。

@ConditionalOnExpression:基于SpEL表达式的条件判断。

@ConditionalOnJava:当JVM版本为指定的版本范围时触发实例化。

@ConditionalOnResource:当类路径下有指定的资源时触发实例化。

@ConditionalOnJndi:在JNDI存在的条件下触发实例化。

@ConditionalOnSingleCandidate:当指定的Bean在容器中只有一个,或者有多个但是指定了首选的Bean时触发实例化。

@EnableAutoConfiguration 会告诉 Spring Boot 去通过依赖的 Jar 包配置 Spring 工程

@NotBlank(message = "用户名不能为空")

@Select("select * from user where name = #{name}")


@Entity  //自动生成表
@Table(name = "user")  //生成表名,若无设置,则使用类名作为表名


@Id  //指定id类型
@GeneratedValue(strategy = GenerationType.IDENTITY) //自增主键
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值