SSM + SpringBoot 常用注解

Spring 常用注解

@Controller

对应表现层的 Bean

@ Service

对应的是业务层 Bean

@ Repository

对应数据访问层 Bean (即DAO组件)

@Component

把普通 pojo 实例化到 Spring 容器中,相当于配置文件中的 <bean id="" class=""/>
当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

@Repository(value="userDao")

注解是告诉 Spring,让 Spring 创建一个名字叫 “userDao” 的 UserDaoImpl 实例。

@Autowired

自动装配,默认按类型装配

@Resource

作用相当于@Autowired,均可标注在字段或属性的 setter 方法上。

不同点:

  • @Autowired是Spring的注解,@Resource是javax.annotation注解
  • @Autowired默认按类型装配,@Resource默认按Name自动注入
  • @Resource注解的使用性更为灵活,可指定名称,也可以指定类型 ;@Autowired注解进行装配容易抛出异常,特别是装配的bean类型有多个的时候,而解决的办法是需要在增加@Qualifier进行限定。
@Qualifier

作用:当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者,具体使用方式如下:

@Autowired 
@Qualifier(value = “demoInfoService”) 
private DemoInfoService demoInfoService;
@Scope

注解 作用域如 @Scope("prototype")

@Bean

@Bean注解用于告诉方法产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。

使用@Bean注解的好处就是能够动态获取一个Bean对象,能够根据环境不同得到不同的Bean对象。或者说将Spring和其他组件分离(其他组件不依赖Spring,但是又想Spring管理生成的bean)。

spring MVC注解

@Controller

表明该类会作为与前端作交互的控制层组件

@RequestMapping

这个注解用于将url映射到整个处理类或者特定的处理请求的方法。可以只用通配符

@RequestParam

请求的参数绑定到方法中的参数上,有required参数,默认情况下,required=true,也就是改参数必须要传。如果改参数可以传可不传,可以配置required=false。

@RequestMapping("/happy")
public String sayHappy(
    @RequestParam(value = "name", required = false) String name,
    @RequestParam(value = "age", required = true) String age) {
    //age参数必须传 ,name可传可不传
    ...
}
@PathVariable

该注解用于方法修饰方法参数,会将修饰的方法参数变为可供使用的 uri变量

@RequestMapping(value="/happy/{dayid}",method=RequestMethod.GET)
public String findPet( @PathVariable String dayid, Model mode) {
//使用@PathVariable注解绑定 {dayid} 到String dayid
}
@RequestBody

指方法参数应该被绑定到HTTP请求Body上。

@ResponseBody

@ResponseBody与@RequestBody类似,它的作用是将返回类型直接输入到 HTTP response body中

@ResponseBody在输出 JSON 格式的数据时,会经常用到。

@RequestMapping(value = "/happy", method =RequestMethod.POST)
@ResponseBody
public String helloWorld() {    
return "Hello World";//返回String类型
}
Spring事务模块注解

在处理dao层service层的事务操作时,譬如删除失败时的回滚操作。使用@Transactional作为注解,但是需要在配置文件激活

<!-- 开启注解方式声明事务 -->

    <tx:annotation-driven transaction-manager="transactionManager" />
@Service
public class CompanyServiceImpl implements CompanyService {
  @Autowired
  private CompanyDAO companyDAO;
    
  @Transactional(
      propagation = Propagation.REQUIRED, 
      readOnly = false, 
      rollbackFor = Exception.class)
  public int deleteByName(String name) {
    int result = companyDAO.deleteByName(name);
    return result;
  }
  ...
}

SpringBoot开发中的常用注解

@SpringBootApplication:

包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。

@ComponentScan

让 Spring Boot 扫描到 Configuration 类并把它加入到程序上下文。

@Configuration

等同于 Spring 的 XML 配置文件;使用Java代码可以检查类型安全。

@EnableAutoConfiguration

开启自动配置。

@ComponentScan

组件扫描,可自动发现和装配一些 Bean。

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication 
// 等同于 @Configuration @EnableAutoConfiguration @ComponentScan 
public class Application { 
	public static void main(String[] args) { 
		SpringApplication.run(Application.class, args); 
	} 
}

@RestController

@Controller和 + ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器

@Value

作用:注入Spring boot application.properties配置的属性的值。示例代码:

@Value(value = “#{message}”) 
private String message;
@ImportResource

用来加载 xml 配置文件

原文地址:https://www.cnblogs.com/hellojava404/p/13170527.html