140.注解与Spring结合[简化类省略SET和GET方法]

Person.java

Student.java

配置applicationContext.xml

1.导入命名空间

在applicationContext.xml的头文件中加入context的配置

2.导入依赖注入的注解解释器

3.导入Java类

不需要再手动给类的属性赋值。因为@Resource已经帮我们做了。

 

原理:

  1. 启动spring容器,并加载配置文件,为纳入spring管理的bean创建对象。
  2. 当解析到<context:annotation-config></context:annotation-config> 的时候会启动依赖注入的注解解析器。[这只是普通的类的注解解析器,下面还会讲到更强大的扫描注解解析器]
  3. 在纳入spring管理的bean的范围内查找bean的属性上有@Resource注解的属性
  4. 如果@Resource注解的name属性的值为””,则会把注解的属性名称和spring容器中bean的id进行匹配,如果匹配成功,则把id对应的类的对象赋值给该属性,如果匹配不成功,则按照类型进行再次匹配,如果再次匹配也不成功,则报错。
  5. 如果@Resource注解的name属性值不为””,则会把name属性的值与spring容器中bean的id进行匹配,如果匹配成功则赋值,如果匹配不成功则直接报错。

@Resource是javax包下面的,spring自己开发了另外两个

而这两个合在一起就相当于@Resource的功能。

支持的注解:

   @Resource   @Autowired  @Qualifier  @PostConstruct  @PreDestroy

说明:注解只能用于引用类型。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 中使用 FreeMarker 模板引擎,可以通过 `Environment` 对象中的 `setVariable` 方法来设置模板中需要的变量值。具体步骤如下: 1. 在 Spring Boot 应用中注入 `FreeMarkerConfigurationFactoryBean` 对象,并通过 `setTemplateLoaderPath` 方法设置模板文件的路径: ``` @Configuration public class FreeMarkerConfig { @Bean public FreeMarkerConfigurationFactoryBean freeMarkerConfigurationFactoryBean() { FreeMarkerConfigurationFactoryBean factoryBean = new FreeMarkerConfigurationFactoryBean(); factoryBean.setTemplateLoaderPath("classpath:/templates/"); return factoryBean; } } ``` 2. 在控制器中注入 `FreeMarkerConfigurer` 对象,并通过 `getConfiguration` 方法获取 `Environment` 对象: ``` @Controller public class IndexController { @Autowired private FreeMarkerConfigurer freeMarkerConfigurer; @RequestMapping("/") public String index(Model model) throws Exception { Environment env = freeMarkerConfigurer.getConfiguration().getEnvironment(); // TODO: 设置模板变量值 return "index"; } } ``` 3. 使用 `setVariable` 方法设置模板变量值: ``` env.setVariable("user", ObjectWrapper.DEFAULT_WRAPPER.wrap(user)); ``` 其中,`user` 是一个 Java 对象,`ObjectWrapper.DEFAULT_WRAPPER` 用于将 Java 对象转换为 FreeMarker 支持的数据类型。 完整代码示例: ``` @Controller public class IndexController { @Autowired private FreeMarkerConfigurer freeMarkerConfigurer; @RequestMapping("/") public String index(Model model) throws Exception { Environment env = freeMarkerConfigurer.getConfiguration().getEnvironment(); User user = new User("张三", "123456"); env.setVariable("user", ObjectWrapper.DEFAULT_WRAPPER.wrap(user)); return "index"; } } public class User { private String name; private String password; public User(String name, String password) { this.name = name; this.password = password; } // getter 和 setter 方法省略 } ``` 在模板中可以通过 `${user.name}` 和 `${user.password}` 访问 `User` 对象的属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值