springboot起步的基础注解

1.mapper类

@Mapper
@Repository

@Mapper和@Repository的区别

1.相同点
@Mapper和@Repository都是作用在dao层接口,使得其生成代理对象bean,交给spring 容器管理
对于mybatis来说,都可以不用写mapper.xml文件
2.不同点
@Mapper不需要配置扫描地址,可以单独使用,如果有多个mapper文件的话,可以在项目启动类中加入@MapperScan(“mapper文件所在包”),这样就不需要每个mapper文件都加@Mapper注解了
@Repository不可以单独使用,否则会报如下错误

Field userMapper in com.liu.service.UserServiceImpl required a bean of type 'com.liu.mapper.UserMapper' that could not be found.
1
找不到bean,这是因为项目启动的时候没有去扫描使用@Repository注解的文件,所以使用@Repository需要配置扫描地址
但在idea中,使用@Repository可以消除在业务层中注入mapper对象时的错误,如下图所示

2.serviceImpl

@Service("courseDAO")

@Scope("prototype")

1.@Service注解作用

1、 其getBean的默认名称是类名(头字母小写),可以@Service(“xxxx”)这样来指定, 2、其定义的bean默认是单例的,可以使用@Service(“beanName”) @Scope(“prototype”)来改变。
3、可以通过@PostConstruct和@PreDestroy指定初始化方法和销毁方法(方法名任意)

@Service("baseCacheService")
public class BaseCacheServiceImpl implements BaseCacheService{

}
详解
首先,在applicationContext.xml文件中加一行:

<context:component-scan base-package="com.hzhi.clas"/>
加上这一行以后,将自动扫描路径下面的包,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了,类似的还包括@Component、@Repository、@Controller。

比如下面这个类:

@Service("courseDAO")
@Scope("prototype")
public class CourseDAOImpl extends HibernateDaoSupport implements CourseDAO{

......

}
其作用就相当于applicationContext.xml文件里面的:

<bean id="courseDAO"
class="com.hzhi.course.dao.CourseDAOImpl" scope="prototype">
......
</bean>


2.@Scope("prototype")去掉单例模式

singleton是单例,如果你的这个bean需要共享一些信息,那么可以配置成singleton,这样的bean可以保存一些信息,方便交互,但是这样的话就需要自己去处理bean的同步问题,必须保证这个bean是线程安全的。
prototype是原型,每次得到的bean实例都是新的,不需要自己去考虑同步问题,但就无法进行成员共享。

3.service

4.controller

 类

@RestController
@RequestMapping("/user")
@Validated
@Api(tags = "用户数据操作")

方法
@Autowired
private IUserService iUserService;

@GetMapping("/userQuery")
@ApiOperation("查询所有的用户")
public List<UserInfo> userQuery(){

return iUserService.userQuery();
}

5.启动类

@SpringBootApplication
原文地址:https://www.cnblogs.com/chwl-ljx/p/15342072.html