@SpringBootApplication
用在SpringBoot项目的启动程序上,整个SpringBoot只有且必须有这一个这样的注解,是项目的入口程序
@Controller
是让URL请求返回具体的页面,这个注解在类头上添加
@RequestMapping("**")
在Controller控制器中的方法头使用
@RestController
通过@RestController注解后,其方法内再配合@RequestMapping,即可返回Json格式的数据
@RequestParam(value=“变量名”,required=true/false,defaultVale=默认值)
value:请求参数名(必须配置)
required:默认为true
defaultValue:如果设置该值,required将自动设为false
@PathVariable
在参数前设置,格式是:@PathVariable(value=“变量名”,required=true/false)
@GetMapping
只接收前端get请求
@PostMapping
只接收前端post提交,一般用于数据的新增
@PutMapping
只接收前端put提交,一般用于数据的修改
@DeleteMapping
只接收前端DELETE请求,用于数据的删除
@RestBody
用于接收前端传递给后端的json字符串中的数据,在后端同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,@RequestParam()可以有多个
@CrossOrigin
前后端分离之后前端Ajax请求后端经常碰到的问题就是跨域问题,可以有多种方式解决
1.在方法头加@CrossOrigin注解
2.使用过滤器设置
@Configuration
是定义配置类,一般在该类内部通过@bean注册,也就是说将来在调用时不用手工new
@Bean
@Service
用于修饰service层的组件,标注在类上。
之后调用时和用@Bean注册是一样用@Autowired即可。
用@Service标注的类一般都是明确是业务服务层,从业务角度清晰的划分。
@Component
@Component和@Service没有本质的区别
@Repository
@Repository和@Controller、@Service、@Component的作用差不多,都是把对象交给IOC管理
@Autowired
是用来“new实例”的,加了该注解的对象可以直接调用即可,无需手动new对象。
@Resource
用@Resource和@Autowired类似
@Autowried+@Qualifier
@Value
1.是获取application.properties中的配置信息
2.用@Value取值
注解使用总结
SSM框架补充注解
如果框架选择的是SSM,要使用注解的配置,则需要注意dao层接口的扫描。就不能再用@Repository注解了,需要使用@Mapper在接口上添加注解或者使用@MapperScan在主程序上添加注解。
@Mappeer
@Mapper注解是Mybatis注解,Mybatis运行时需要找到mapper文件,然后构建代理类来完成整个功能的实现,和Spring没有关系。
@Mapper的作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类
@Mapper
public interface UserDao{//代码
}
如果想要每个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,比较麻烦,解决这个问题用@MapperScan注解
@MapperScan
作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会变成相应的实现类,添加位置是在SpringBoot启动类上面添加。
@SpringBootApplication
@MapperScan("com.mingshop.dao")
public class DemoApplication{
public static void main(String[] args){
SpringApplication.run(DemoApplication.class,args);
}
}
添加@MapperScan(“com.mingshop.dao”)注解之后,com.mingshop.dao包下面的接口类,在编译之后都会生成相应的实现类
使用@MapperScan注解多个包
@SpringBootApplication
@MapperScan({"com.mingshop.demo1","com.mingshop.demo2"})
public class DemoApplication{
public static void main(String[] args){
SpringApplication.run(DemoApplication.class,args);
}
}
@Mapper和@Repository到底用哪个?
@Mapper是Mybatis注解,Mybatis运行时需要能找到mapper文件,然后运行时构建代理类来完成功能,和Spring没有关系。只有使用mybatis时才有@Mapper注解,没有引入Mybatis是没有@Mapper注解,这点可以看@Mapper所在包路径就知道了。
@Repositroy是来自org.springframework.stereotype.Repository,是Spring的包。在DAO接口中注解了@Repository或者不加,都能注入实例到Spring中,被Service层引用