学习就像是起着自行车流浪,兴趣虽好,但只是让我们开始的动力,要想真骑上几十公里,那还得靠坚持不断的打气,但你若想骑上几百公里,那还得需要勇气和自信,什么,难不成你还需要骑上几千公里,那终点一定有你需要去实现的东西
注解开发
Spring框架的注解开发是一种轻量级的开发方式,它可以使开发者更加方便快捷地实现对象的实例化、配置、依赖注入等操作,大大降低开发难度。下面是Spring框架注解开发的一些常用注解及其作用:
@Component
@Component注解是一种通用的注解,它可以标记类为一个组件,表示对该类进行实例化并交由 Spring容器托管。@Component注解还有一些衍生的注解,如@Service、@Controller、@Repository等,它们在@Component注解的基础上增加了一些特殊功能,如@Service注解用于业务逻辑层,@Controller注解用于控制器层,@Repository注解用于数据访问层。
@Autowired
@Autowired注解是实现自动装配的关键注解,它可以自动将依赖的对象注入到当前对象中。@Autowired注解可以用于字段、构造方法和普通方法上。
@Value
@Value注解用于对属性进行赋值,它可以将配置文件中的属性值注入到类中的属性中,从而实现更加灵活的配置。@Value注解也可以用于其他注解中,如@Bean、@Component等。
@RequestMapping
@RequestMapping注解用于定义请求的URL地址,它可以标注在类和方法上,用来映射请求URL,从而可以通过浏览器发送 HTTP 请求进行触发。@RequestMapping注解可以设置请求方法、请求参数、请求头等信息。
@Configuration
@Configuration注解表示当前类为Spring的一个配置类,它用于定义Spring容器中的Bean对象及其依赖关系。@Configuration注解还可以和@Bean注解配合使用,实现自定义Bean的装配。
这些注解只是 Spring注解开发中的一部分,还有许多其他注解,如@PostConstruct、@PreDestroy、@Qualifier等,它们都是 Spring框架注解开发中不可或缺的部分,可以大大提高我们的开发效率。
现在我们可以先将applicationContext文件中的内容修改一种写的方式了
<!-- 探索注解开发 -->
<!-- <bean id="testDemo18" class="com.javala.dao1.TestDemo18"/> 改为如下-->
<context:component-scan base-package="com.javala.dao2"/>
我们在上面代码中写的意思就是去扫描dao2包中,那么我们便需要在dao2包中写好文件了
@Component("testDemo18") // 服务于注解开发 testDemo18就是那个bean的id一样的效果
public class TestDemo18 {
public void say() {
System.out.println("aha!");
}
}
最后案例使用类(与前面的xml配置时一样的写法)
public class App14 {
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
TestDemo18 testDemo18 = (TestDemo18) ctx.getBean("testDemo18");
System.out.println(testDemo18);
testDemo18.say();
}
}
运行到这,难免有些人会报错,比如版本错误(因为这里只有jdk8才支持,高的反而不行)
版本解决办法
跟着图片操作
这时就调换成功了
既然发现注解开发好用,那就只能继续探索更加好用的方法了
Spring官方建议:
业务层使用:@Service
数据层使用:@Repository
控制层使用:@Controller
学到这就可以发现原来注解开发那么方便,那为什么还掺杂了一点基于XML配置文件的开发呢?
纯注解开发模式
1.新建一个类来代替XML配置文件
2.SpringConfig中内容
@Configuration // 指示此类为SpringBean配置类
@ComponentScan("com.javala") // 用于自动扫描并注册来自指定包及其子包中的Spring组件
public class SpringConfig {
}
3.实例运用类也发生一些小的改变
public class App15 {
public static void main(String[] args) {
// 下面一行代码发生小改变
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
TestDemo18 testDemo18 = (TestDemo18) ctx.getBean("testDemo18");
System.out.println(testDemo18);
testDemo18.say();
}
}
运行后效果有效
扫描多个
@ComponentScan({"com.javala.dao2","com.javala.dao1"})
总结
那么学到这我们就已经掌握了注解开发的基础内容
我是哈利巴多先生,如果觉得不错,还望多多鼓励(文章不定时更新)