• 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 配置文件

  • 相关阅读:
    STM32系列命名规则
    在使用MOS管时要注意的问题
    LED汽车前大灯
    Linux Makefile analysis for plain usr
    Linux Kernel Makefile Test
    linux源码Makefile的详细分析
    "The connection for the USB device '###' was unsuccessful. The device is currently in use"
    Allegro使用技巧
    Integrated Circuit Intro
    ADC/DAC的一些参数
  • 原文地址:https://www.cnblogs.com/hellojava404/p/13170527.html
Copyright © 2020-2023  润新知