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
posted @   创嗨  阅读(70)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示