当前位置: 首页 > news >正文

我要建企业营销型网站网络科技公司骗了我36800

我要建企业营销型网站,网络科技公司骗了我36800,jsp网站建设项目实战总结,陕建云采电子商务平台《深入剖析 Spring 常用注解:功能与差异的全景洞察》 在当今的 Java 开发领域,Spring 框架无疑是最广泛使用的框架之一。而在 Spring 中,注解的运用极大地简化了开发流程,提高了代码的可读性和可维护性。本文将深入探讨 Spring 中…

《深入剖析 Spring 常用注解:功能与差异的全景洞察》

在当今的 Java 开发领域,Spring 框架无疑是最广泛使用的框架之一。而在 Spring 中,注解的运用极大地简化了开发流程,提高了代码的可读性和可维护性。本文将深入探讨 Spring 中一些常用的注解,并详细阐述它们之间的区别,通过实际的例子帮助您更好地理解和运用。

一、组件相关注解

1. @Component

@Component 是一个基础且通用的组件注解,用于标识一个普通的 Spring Bean 组件。当 Spring 容器在扫描组件时,会将被 @Component 标注的类实例化为一个 Bean,并纳入 Spring 的管理范围。

例:

@Component
public class CommonComponent {public void commonMethod() {System.out.println("这是一个通用组件的方法");}
}

2. @Service

@Service 注解通常用于标注业务逻辑层的组件,其本质上也是 @Component 的一种特殊形式,用于更明确地强调该类是一个提供业务服务的类。

例:

@Service
public class UserService {public User getUserById(Long id) {// 从数据库或其他数据源获取用户信息return new User();}
}

3. @Repository

@Repository 注解主要用于标注数据访问层(DAO)的组件,例如与数据库进行交互的类。它的使用有助于区分数据访问相关的逻辑。

例:

@Repository
public class UserRepository {@Autowiredprivate JdbcTemplate jdbcTemplate;public User findUserById(Long id) {String sql = "SELECT * FROM users WHERE id =?";return jdbcTemplate.queryForObject(sql, new Object[]{id}, (rs, rowNum) -> {User user = new User();user.setId(rs.getLong("id"));user.setName(rs.getString("name"));return user;});}
}

4. @Controller

@Controller 注解用于标注控制层的组件,主要处理用户的请求并返回相应的响应。

例:

@Controller
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/user")public ModelAndView getUser() {User user = userService.getUserById(1L);ModelAndView modelAndView = new ModelAndView("user");modelAndView.addObject("user", user);return modelAndView;}
}

二、依赖注入相关注解

1. @Autowired

@Autowired 注解用于按照类型自动装配依赖的对象。Spring 容器会根据类型在容器中查找匹配的 Bean 并进行注入。

例:

@Service
public class OrderService {@Autowiredprivate OrderRepository orderRepository;public void createOrder(Order order) {orderRepository.save(order);}
}

2. @Resource

@Resource 注解也用于依赖注入,它既可以通过名称也可以通过类型来查找要注入的 Bean。

例:

@Service
public class UserService {@Resource(name = "userRepository")private UserRepository userRepository;public void updateUser(User user) {userRepository.update(user);}
}

三、配置相关注解

1. @Configuration

@Configuration 注解用于标识一个类是配置类,Spring 会将该类中的配置信息进行处理和应用。

例:

@Configuration
public class AppConfig {@Beanpublic DataSource dataSource() {// 配置数据源return new DriverManagerDataSource();}
}

2. @Bean

@Bean 注解在配置类中用于定义一个 Bean,通过方法的返回值来创建和配置 Bean。

例:

@Configuration
public class AppConfig {@Beanpublic UserService userService() {return new UserServiceImpl();}
}

四、切面编程(AOP)相关注解

1. @Aspect

@Aspect 注解用于标识一个类是切面类,该类中可以定义各种切面逻辑。

例:

@Aspect
public class LoggingAspect {// 切面逻辑
}

2. @Before

@Before 注解用于定义在目标方法执行前执行的切面逻辑。

例:

@Before("execution(* com.example.service.*.*(..))")
public void beforeMethod(JoinPoint joinPoint) {System.out.println("在方法执行前:" + joinPoint.getSignature().getName());
}

3. @After

@After 注解用于定义在目标方法执行后执行的切面逻辑。

例:

@After("execution(* com.example.service.*.*(..))")
public void afterMethod(JoinPoint joinPoint) {System.out.println("在方法执行后:" + joinPoint.getSignature().getName());
}

4. @Around

@Around 注解用于定义环绕目标方法执行的切面逻辑,可以灵活地控制目标方法的执行过程。

例:

@Around("execution(* com.example.service.*.*(..))")
public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println("环绕前");Object result = joinPoint.proceed();System.out.println("环绕后");return result;
}

五、事务管理相关注解

1. @Transactional

@Transactional 注解用于标识一个方法是事务性的,确保方法内的数据库操作要么全部成功提交,要么全部回滚。

例:

@Service
public class UserServiceImpl implements UserService {@Transactionalpublic void updateUser(User user) {// 更新用户信息// 如果在此过程中出现异常,事务将自动回滚}
}

六、相似注解的区别

!!!相似注解的区别**:

  • @Autowired@Resource
    • @Autowired 主要按照类型进行自动装配,如果存在多个相同类型的 bean ,需要结合 @Qualifier 按名称指定。
    • @Resource 可以按名称或类型装配,若同时指定名称和类型,则优先按名称查找。
  • @Component@Controller@Service@Repository
    • 功能上都是标识组件以便被 Spring 管理,但在分层架构中用于区分不同的层次,具有语义上的差异。
http://www.ds6.com.cn/news/4134.html

相关文章:

  • 广东工程建设监理有限公司网站下载百度
  • 钓鱼网站图片武汉网络推广seo
  • 新疆工程建设云网站百度营销模式
  • 广西住房和城乡建设局官网优化大师官网入口
  • 长春高铁站广告网站策划方案
  • 网站建设 前沿文章网络营销网站平台有哪些
  • 网址缩短链接温州seo按天扣费
  • 好的办公室设计seo百科大全
  • 贵阳网站建设 赶集怎样精选关键词进行网络搜索
  • 展示型网站首页设计解析seo全网优化推广
  • 东莞网站制作公司怎么选择竞价托管一般多少钱
  • 做网站工资多少好的产品怎么推广语言
  • [网络收集]form表单及网站开发中常用js表单取值方法seo推广优化排名软件
  • 17网站一起做网店图片工具免费网站seo优化
  • 镇江做网站seo网站seo优化工具
  • 武进建设银行网站首页谷歌广告优化师
  • 哪个网站做设计兼职不用压金百度知道合伙人官网登录入口
  • 湖北网站建设哪家专业seo网站优化网站编辑招聘
  • 创建一个b2c网站得多少钱seo关键词报价查询
  • 一个外国人建设的中国文字网站深圳网络优化推广公司
  • 网页制作与设计源代码seo实战培训中心
  • 做一个网站需要哪些资源宁波网站建设的公司
  • wordpress网页登录淘宝怎么优化关键词步骤
  • 电商 企业网站 福州链接推广
  • 网站地图插件crm系统成功案例分享ppt
  • 帮别人做钓鱼网站 公安seo品牌优化百度资源网站推广关键词排名
  • 黄页88怎么上传商品seo分析与优化实训心得
  • 做计算机题目的网站推广技术
  • 初中做语文题的网站企业网络推广方案策划书
  • 网站 开发 合同seo优化工具软件