在Spring Boot Cache示例中如何识别对象

时间:2018-11-09 18:37:22

标签: spring-boot caching

我只是查看SpringBoot-Cache-sample(https://spring.io/guides/gs/caching/),想知道如何检测到缓存Book对象。

要检索的对象由构造器的“ Book”类实例化:

using System;
using System.Xml.Linq;
using System.Xml.XPath;

public class Program
{
    public static void Main()
    {
        string _xml = @"<Test xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchemS-instance' xmlns:user='urn:my-scripts' xmlns:msxsl='urn:schemas-microsoft-com:xslt'>
  <FeedTest>
    <ActionId xsi:nil='true' />
    <ReplyToMessageId>12345</ReplyToMessageId>
    <Source>PAPER</Source>
    <Condition />
    <FixingRate xsi:nil='true' />
    <CatsId>TAAH20181105X0000579</CatsId>
  </FeedTest>
</Test>";
        XDocument doc = XDocument.Parse(_xml);
        var catIdText = doc.Root.Element("FeedTest").Element("CatsId").Value;
        Console.WriteLine(catIdText);

        // update or use XPath to update...
        doc.Root.Element("FeedTest").Element("CatsId").Value = catIdText+"Happy day";
        //doc.XPathSelectElement("//Test/FeedTest/CatsId").Value =catIdText+"Happy day";
        var catIdUpdatedText = doc.Root.Element("FeedTest").Element("CatsId").Value;
        Console.WriteLine(catIdUpdatedText);

        // save it again:
        string filePath = @"C:\FileMessageTemplates\Outright\"; //File path
        string path = Path.Combine(filePath ,"First_Test_NEW.xml");
        xdoc.Save(path);
    }
}

维护这些对象的类如下:

private String isbn;
private String title;

public Book(String isbn, String title) {
    this.isbn = isbn;
    this.title = title;
}
 @Override
 public String toString() {
     return "Book{" + "isbn='" + isbn + '\'' + ", title='" + title + '\'' + '}';
}

每个对象都是“新的”。似乎有一个包装器,在内部将返回值与方法参数作为键进行堆叠。然后再次调用该堆栈,然后才真正运行该方法。

我解释这个权利吗?

但是我该如何摆脱不再想要的对象呢?我需要使用@Cacheable(“ books”)-注释重新实例化持有该方法的类吗?

1 个答案:

答案 0 :(得分:0)

是的,我的解释是正确的。本来可以看看JavaDoc。抱歉。